awscli 1.40.17__py3-none-any.whl → 1.44.26__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- awscli/__init__.py +1 -1
- awscli/alias.py +3 -3
- awscli/argprocess.py +7 -2
- awscli/arguments.py +1 -1
- awscli/bcdoc/docevents.py +3 -0
- awscli/clidocs.py +19 -2
- awscli/clidriver.py +57 -10
- awscli/compat.py +11 -0
- awscli/customizations/argrename.py +1 -3
- awscli/customizations/cliinputjson.py +4 -0
- awscli/customizations/cloudformation/deploy.py +23 -6
- awscli/customizations/cloudformation/deployer.py +2 -2
- awscli/customizations/cloudformation/package.py +3 -2
- awscli/customizations/cloudfront.py +3 -1
- awscli/customizations/cloudtrail/subscribe.py +5 -5
- awscli/customizations/cloudtrail/validation.py +32 -11
- awscli/customizations/codecommit.py +2 -3
- awscli/customizations/codedeploy/deregister.py +5 -2
- awscli/customizations/codedeploy/push.py +7 -6
- awscli/customizations/codedeploy/register.py +5 -2
- awscli/customizations/codedeploy/systems.py +3 -1
- awscli/customizations/commands.py +2 -1
- awscli/customizations/configservice/getstatus.py +3 -3
- awscli/customizations/datapipeline/__init__.py +7 -4
- awscli/customizations/datapipeline/createdefaultroles.py +4 -2
- awscli/customizations/dlm/createdefaultrole.py +4 -2
- awscli/customizations/ec2/bundleinstance.py +2 -1
- awscli/customizations/eks/get_token.py +6 -4
- awscli/customizations/eks/update_kubeconfig.py +15 -3
- awscli/customizations/emr/argumentschema.py +355 -344
- awscli/customizations/emr/createcluster.py +520 -282
- awscli/customizations/emr/emrutils.py +83 -50
- awscli/customizations/emr/helptext.py +132 -74
- awscli/customizations/emr/steputils.py +92 -52
- awscli/customizations/gamelift/getlog.py +3 -2
- awscli/customizations/gamelift/uploadbuild.py +30 -15
- awscli/customizations/globalargs.py +169 -0
- awscli/customizations/logs/startlivetail.py +3 -3
- awscli/customizations/paginate.py +66 -1
- awscli/customizations/rds.py +3 -1
- awscli/customizations/removals.py +4 -0
- awscli/customizations/s3/filegenerator.py +7 -1
- awscli/customizations/s3/fileinfo.py +5 -1
- awscli/customizations/s3/fileinfobuilder.py +7 -0
- awscli/customizations/s3/s3handler.py +11 -0
- awscli/customizations/s3/subcommands.py +147 -6
- awscli/customizations/s3/syncstrategy/base.py +9 -0
- awscli/customizations/s3/syncstrategy/caseconflict.py +96 -0
- awscli/customizations/s3/utils.py +25 -0
- awscli/customizations/s3uploader.py +18 -8
- awscli/customizations/scalarparse.py +48 -9
- awscli/customizations/utils.py +2 -1
- awscli/customizations/waiters.py +3 -2
- awscli/data/cli.json +5 -0
- awscli/examples/apigateway/update-vpc-link.rst +47 -0
- awscli/examples/apigatewayv2/create-routing-rule.rst +52 -0
- awscli/examples/apigatewayv2/delete-routing-rule.rst +11 -0
- awscli/examples/apigatewayv2/get-routing-rule.rst +35 -0
- awscli/examples/apigatewayv2/list-routing-rules.rst +38 -0
- awscli/examples/apigatewayv2/put-routing-rule.rst +52 -0
- awscli/examples/application-signals/batch-get-service-level-objective-budget-report.rst +99 -0
- awscli/examples/application-signals/create-service-level-objective.rst +88 -0
- awscli/examples/application-signals/delete-service-level-objective.rst +10 -0
- awscli/examples/application-signals/get-service-level-objective.rst +53 -0
- awscli/examples/application-signals/get-service.rst +72 -0
- awscli/examples/application-signals/list-service-dependencies.rst +96 -0
- awscli/examples/application-signals/list-service-dependents.rst +36 -0
- awscli/examples/application-signals/list-service-level-objectives.rst +17 -0
- awscli/examples/application-signals/list-service-operations.rst +63 -0
- awscli/examples/application-signals/list-services.rst +61 -0
- awscli/examples/application-signals/list-tags-for-resource.rst +17 -0
- awscli/examples/application-signals/start-discovery.rst +9 -0
- awscli/examples/application-signals/tag-resource.rst +11 -0
- awscli/examples/application-signals/untag-resource.rst +11 -0
- awscli/examples/application-signals/update-service-level-objective.rst +69 -0
- awscli/examples/cloudformation/_package_description.rst +4 -4
- awscli/examples/cloudformation/create-generated-template.rst +50 -0
- awscli/examples/cloudformation/create-stack-refactor.rst +16 -0
- awscli/examples/cloudformation/delete-generated-template.rst +10 -0
- awscli/examples/cloudformation/describe-generated-template.rst +62 -0
- awscli/examples/cloudformation/describe-resource-scan.rst +38 -0
- awscli/examples/cloudformation/describe-stack-refactor.rst +20 -0
- awscli/examples/cloudformation/execute-stack-refactor.rst +10 -0
- awscli/examples/cloudformation/list-generated-templates.rst +41 -0
- awscli/examples/cloudformation/list-resource-scan-related-resources.rst +47 -0
- awscli/examples/cloudformation/list-resource-scan-resources.rst +30 -0
- awscli/examples/cloudformation/list-stack-refactor-actions.rst +71 -0
- awscli/examples/cloudformation/start-resource-scan.rst +14 -0
- awscli/examples/cloudfront/associate-distribution-tenant-web-acl.rst +18 -0
- awscli/examples/cloudfront/associate-distribution-web-acl.rst +18 -0
- awscli/examples/cloudfront/create-connection-group.rst +39 -0
- awscli/examples/cloudfront/create-distribution-tenant.rst +275 -0
- awscli/examples/cloudfront/create-distribution.rst +625 -235
- awscli/examples/cloudfront/create-invalidation-for-distribution-tenant.rst +29 -0
- awscli/examples/cloudfront/delete-connection-group.rst +11 -0
- awscli/examples/cloudfront/delete-distribution-tenant.rst +11 -0
- awscli/examples/cloudfront/disassociate-distribution-tenant-web-acl.rst +16 -0
- awscli/examples/cloudfront/disassociate-distribution-web-acl.rst +16 -0
- awscli/examples/cloudfront/get-connection-group-by-routing-endpoint.rst +26 -0
- awscli/examples/cloudfront/get-connection-group.rst +26 -0
- awscli/examples/cloudfront/get-distribution-tenant-by-domain.rst +37 -0
- awscli/examples/cloudfront/get-distribution-tenant.rst +31 -0
- awscli/examples/cloudfront/get-invalidation-for-distribution-tenant.rst +29 -0
- awscli/examples/cloudfront/get-managed-certificate-details.rst +25 -0
- awscli/examples/cloudfront/list-connection-groups.rst +38 -0
- awscli/examples/cloudfront/list-distribution-tenants-by-customization.rst +45 -0
- awscli/examples/cloudfront/list-distribution-tenants.rst +90 -0
- awscli/examples/cloudfront/list-distributions-by-connection-mode.rst +115 -0
- awscli/examples/cloudfront/list-domain-conflicts.rst +22 -0
- awscli/examples/cloudfront/list-invalidations-for-distribution-tenant.rst +22 -0
- awscli/examples/cloudfront/update-connection-group.rst +29 -0
- awscli/examples/cloudfront/update-distribution-tenant.rst +76 -0
- awscli/examples/cloudfront/update-domain-association.rst +18 -0
- awscli/examples/cloudfront/verify-dns-configuration.rst +20 -0
- awscli/examples/ec2/associate-ipam-resource-discovery.rst +1 -1
- awscli/examples/ec2/authorize-security-group-ingress.rst +1 -1
- awscli/examples/ec2/create-ipam-resource-discovery.rst +1 -1
- awscli/examples/ec2/delete-ipam-pool.rst +1 -1
- awscli/examples/ec2/describe-addresses-attribute.rst +1 -1
- awscli/examples/ec2/get-ipam-discovered-public-addresses.rst +1 -1
- awscli/examples/ec2/modify-ipam-resource-discovery.rst +1 -1
- awscli/examples/ec2/modify-ipam-scope.rst +1 -1
- awscli/examples/ec2/release-ipam-pool-allocation.rst +3 -3
- awscli/examples/eks/associate-access-policy.rst +29 -0
- awscli/examples/eks/create-access-entry.rst +54 -0
- awscli/examples/eks/create-pod-identity-association.rst +59 -0
- awscli/examples/eks/delete-access-entry.rst +11 -0
- awscli/examples/eks/delete-pod-identity-association.rst +28 -0
- awscli/examples/eks/describe-access-entry.rst +25 -0
- awscli/examples/eks/describe-insight.rst +36 -0
- awscli/examples/eks/describe-pod-identity-association.rst +28 -0
- awscli/examples/eks/disassociate-access-policy.rst +12 -0
- awscli/examples/eks/list-access-entries.rst +19 -0
- awscli/examples/eks/list-access-policies.rst +90 -0
- awscli/examples/eks/list-associated-access-policies.rst +27 -0
- awscli/examples/eks/list-insights.rst +67 -0
- awscli/examples/eks/list-pod-identity-associations.rst +61 -0
- awscli/examples/eks/update-access-entry.rst +28 -0
- awscli/examples/eks/update-pod-identity-association.rst +29 -0
- awscli/examples/elbv2/modify-listener.rst +95 -86
- awscli/examples/emr/create-cluster-synopsis.txt +1 -0
- awscli/examples/global_options.rst +4 -0
- awscli/examples/global_synopsis.rst +1 -0
- awscli/examples/guardduty/update-detector.rst +23 -0
- awscli/examples/ivs-realtime/create-stage.rst +6 -3
- awscli/examples/ivs-realtime/get-composition.rst +7 -4
- awscli/examples/ivs-realtime/get-participant.rst +99 -31
- awscli/examples/ivs-realtime/get-stage.rst +3 -2
- awscli/examples/ivs-realtime/list-participant-events.rst +54 -2
- awscli/examples/ivs-realtime/list-participant-replicas.rst +24 -0
- awscli/examples/ivs-realtime/list-participants.rst +61 -3
- awscli/examples/ivs-realtime/start-composition.rst +88 -3
- awscli/examples/ivs-realtime/start-participant-replication.rst +24 -0
- awscli/examples/ivs-realtime/stop-participant-replication.rst +24 -0
- awscli/examples/ivs-realtime/update-stage.rst +51 -3
- awscli/examples/kms/create-key.rst +42 -7
- awscli/examples/kms/delete-imported-key-material.rst +8 -2
- awscli/examples/kms/describe-key.rst +2 -0
- awscli/examples/kms/disable-key.rst +1 -1
- awscli/examples/kms/generate-data-key-pair-without-plaintext.rst +1 -0
- awscli/examples/kms/generate-data-key-pair.rst +1 -0
- awscli/examples/kms/generate-data-key-without-plaintext.rst +2 -1
- awscli/examples/kms/generate-data-key.rst +5 -4
- awscli/examples/kms/generate-mac.rst +45 -0
- awscli/examples/kms/generate-random.rst +1 -1
- awscli/examples/kms/get-public-key.rst +2 -3
- awscli/examples/kms/import-key-material.rst +6 -1
- awscli/examples/kms/re-encrypt.rst +3 -3
- awscli/examples/kms/sign.rst +1 -1
- awscli/examples/kms/verify-mac.rst +27 -0
- awscli/examples/kms/verify.rst +5 -1
- awscli/examples/lambda/create-function.rst +4 -4
- awscli/examples/lambda/get-function.rst +3 -3
- awscli/examples/lambda/list-functions.rst +6 -6
- awscli/examples/medical-imaging/create-datastore.rst +19 -2
- awscli/examples/medical-imaging/get-datastore.rst +24 -1
- awscli/examples/networkmanager/get-vpc-attachment.rst +1 -1
- awscli/examples/omics/cancel-run.rst +1 -1
- awscli/examples/omics/create-run-group.rst +4 -2
- awscli/examples/omics/create-workflow.rst +1 -1
- awscli/examples/omics/delete-run-group.rst +1 -1
- awscli/examples/omics/delete-run.rst +1 -1
- awscli/examples/omics/delete-workflow.rst +1 -1
- awscli/examples/omics/get-run-group.rst +1 -1
- awscli/examples/omics/get-run-task.rst +1 -1
- awscli/examples/omics/get-run.rst +1 -1
- awscli/examples/omics/get-workflow.rst +1 -1
- awscli/examples/omics/list-run-groups.rst +1 -1
- awscli/examples/omics/list-run-tasks.rst +1 -1
- awscli/examples/omics/list-runs.rst +1 -1
- awscli/examples/omics/list-workflows.rst +1 -1
- awscli/examples/omics/start-run.rst +1 -2
- awscli/examples/omics/update-workflow.rst +1 -1
- awscli/examples/pi/create-performance-analysis-report.rst +17 -0
- awscli/examples/pi/delete-performance-analysis-report.rst +12 -0
- awscli/examples/pi/describe-dimension-keys.rst +33 -1
- awscli/examples/pi/get-dimension-key-details.rst +25 -0
- awscli/examples/pi/get-performance-analysis-report.rst +27 -0
- awscli/examples/pi/get-resource-metadata.rst +20 -0
- awscli/examples/pi/list-available-resource-dimensions.rst +48 -0
- awscli/examples/pi/list-available-resource-metrics.rst +29 -0
- awscli/examples/pi/list-performance-analysis-reports.rst +44 -0
- awscli/examples/pi/list-tags-for-resource.rst +20 -0
- awscli/examples/pi/tag-resource.rst +12 -0
- awscli/examples/pi/untag-resource.rst +12 -0
- awscli/examples/route53domains/get-domain-detail.rst +3 -3
- awscli/examples/securityhub/describe-hub.rst +6 -4
- awscli/examples/servicediscovery/create-service.rst +50 -10
- awscli/examples/servicediscovery/delete-namespace.rst +18 -4
- awscli/examples/servicediscovery/delete-service-attributes.rst +15 -3
- awscli/examples/servicediscovery/delete-service.rst +13 -3
- awscli/examples/servicediscovery/deregister-instance.rst +18 -2
- awscli/examples/servicediscovery/discover-instances-revision.rst +18 -1
- awscli/examples/servicediscovery/discover-instances.rst +32 -2
- awscli/examples/servicediscovery/get-instance.rst +30 -4
- awscli/examples/servicediscovery/get-instances-health-status.rst +19 -1
- awscli/examples/servicediscovery/get-namespace.rst +40 -9
- awscli/examples/servicediscovery/get-operation.rst +32 -6
- awscli/examples/servicediscovery/get-service-attributes.rst +25 -3
- awscli/examples/servicediscovery/get-service.rst +35 -7
- awscli/examples/servicediscovery/list-instances.rst +38 -3
- awscli/examples/servicediscovery/list-namespaces.rst +45 -22
- awscli/examples/servicediscovery/list-services.rst +30 -2
- awscli/examples/servicediscovery/register-instance.rst +18 -2
- awscli/examples/servicediscovery/update-http-namespace.rst +22 -5
- awscli/examples/servicediscovery/update-instance-custom-health-status.rst +14 -1
- awscli/examples/servicediscovery/update-private-dns-namespace.rst +22 -5
- awscli/examples/servicediscovery/update-public-dns-namespace.rst +22 -5
- awscli/examples/servicediscovery/update-service-attributes.rst +14 -2
- awscli/examples/servicediscovery/update-service.rst +20 -4
- awscli/examples/ssm/put-parameter.rst +6 -6
- awscli/examples/verifiedpermissions/update-policy.rst +10 -78
- awscli/examples/workspaces/describe-workspace-directories.rst +1 -2
- awscli/examples/workspaces/register-workspace-directory.rst +2 -3
- awscli/handlers.py +0 -4
- awscli/paramfile.py +21 -4
- awscli/testutils.py +22 -4
- awscli/topics/config-vars.rst +1 -1
- awscli/topics/s3-case-insensitivity.rst +105 -0
- awscli/topics/topic-tags.json +16 -0
- awscli/utils.py +33 -2
- {awscli-1.40.17.dist-info → awscli-1.44.26.dist-info}/METADATA +18 -3
- {awscli-1.40.17.dist-info → awscli-1.44.26.dist-info}/RECORD +251 -308
- awscli/customizations/opsworks.py +0 -543
- awscli/customizations/opsworkscm.py +0 -21
- awscli/examples/elastictranscoder/cancel-job.rst +0 -8
- awscli/examples/elastictranscoder/create-job.rst +0 -94
- awscli/examples/elastictranscoder/create-pipeline.rst +0 -94
- awscli/examples/elastictranscoder/create-preset.rst +0 -141
- awscli/examples/elastictranscoder/delete-pipeline.rst +0 -13
- awscli/examples/elastictranscoder/delete-preset.rst +0 -8
- awscli/examples/elastictranscoder/list-jobs-by-pipeline.rst +0 -13
- awscli/examples/elastictranscoder/list-jobs-by-status.rst +0 -14
- awscli/examples/elastictranscoder/list-pipelines.rst +0 -84
- awscli/examples/elastictranscoder/list-presets.rst +0 -95
- awscli/examples/elastictranscoder/read-job.rst +0 -65
- awscli/examples/elastictranscoder/read-pipeline.rst +0 -59
- awscli/examples/elastictranscoder/read-preset.rst +0 -100
- awscli/examples/elastictranscoder/update-pipeline-notifications.rst +0 -52
- awscli/examples/elastictranscoder/update-pipeline-status.rst +0 -53
- awscli/examples/elastictranscoder/update-pipeline.rst +0 -95
- awscli/examples/opsworks/assign-instance.rst +0 -14
- awscli/examples/opsworks/assign-volume.rst +0 -17
- awscli/examples/opsworks/associate-elastic-ip.rst +0 -14
- awscli/examples/opsworks/attach-elastic-load-balancer.rst +0 -14
- awscli/examples/opsworks/create-app.rst +0 -64
- awscli/examples/opsworks/create-deployment.rst +0 -66
- awscli/examples/opsworks/create-instance.rst +0 -25
- awscli/examples/opsworks/create-layer.rst +0 -17
- awscli/examples/opsworks/create-server.rst +0 -43
- awscli/examples/opsworks/create-stack.rst +0 -25
- awscli/examples/opsworks/create-user-profile.rst +0 -24
- awscli/examples/opsworks/delete-app.rst +0 -17
- awscli/examples/opsworks/delete-instance.rst +0 -15
- awscli/examples/opsworks/delete-layer.rst +0 -17
- awscli/examples/opsworks/delete-stack.rst +0 -18
- awscli/examples/opsworks/delete-user-profile.rst +0 -17
- awscli/examples/opsworks/deregister-elastic-ip.rst +0 -13
- awscli/examples/opsworks/deregister-instance.rst +0 -14
- awscli/examples/opsworks/deregister-rds-db-instance.rst +0 -20
- awscli/examples/opsworks/deregister-volume.rst +0 -15
- awscli/examples/opsworks/describe-apps.rst +0 -38
- awscli/examples/opsworks/describe-commands.rst +0 -43
- awscli/examples/opsworks/describe-deployments.rst +0 -52
- awscli/examples/opsworks/describe-elastic-ips.rst +0 -24
- awscli/examples/opsworks/describe-elastic-load-balancers.rst +0 -37
- awscli/examples/opsworks/describe-instances.rst +0 -95
- awscli/examples/opsworks/describe-layers.rst +0 -171
- awscli/examples/opsworks/describe-load-based-auto-scaling.rst +0 -37
- awscli/examples/opsworks/describe-my-user-profile.rst +0 -24
- awscli/examples/opsworks/describe-permissions.rst +0 -26
- awscli/examples/opsworks/describe-raid-arrays.rst +0 -31
- awscli/examples/opsworks/describe-rds-db-instances.rst +0 -29
- awscli/examples/opsworks/describe-stack-provisioning-parameters.rst +0 -32
- awscli/examples/opsworks/describe-stack-summary.rst +0 -27
- awscli/examples/opsworks/describe-stacks.rst +0 -65
- awscli/examples/opsworks/describe-timebased-auto-scaling.rst +0 -39
- awscli/examples/opsworks/describe-user-profiles.rst +0 -32
- awscli/examples/opsworks/describe-volumes.rst +0 -31
- awscli/examples/opsworks/detach-elastic-load-balancer.rst +0 -14
- awscli/examples/opsworks/disassociate-elastic-ip.rst +0 -14
- awscli/examples/opsworks/get-hostname-suggestion.rst +0 -21
- awscli/examples/opsworks/reboot-instance.rst +0 -14
- awscli/examples/opsworks/register-elastic-ip.rst +0 -19
- awscli/examples/opsworks/register-rds-db-instance.rst +0 -15
- awscli/examples/opsworks/register-volume.rst +0 -18
- awscli/examples/opsworks/register.rst +0 -105
- awscli/examples/opsworks/set-load-based-auto-scaling.rst +0 -38
- awscli/examples/opsworks/set-permission.rst +0 -23
- awscli/examples/opsworks/set-time-based-auto-scaling.rst +0 -33
- awscli/examples/opsworks/start-instance.rst +0 -20
- awscli/examples/opsworks/start-stack.rst +0 -15
- awscli/examples/opsworks/stop-instance.rst +0 -20
- awscli/examples/opsworks/stop-stack.rst +0 -15
- awscli/examples/opsworks/unassign-instance.rst +0 -14
- awscli/examples/opsworks/unassign-volume.rst +0 -16
- awscli/examples/opsworks/update-app.rst +0 -14
- awscli/examples/opsworks/update-elastic-ip.rst +0 -14
- awscli/examples/opsworks/update-instance.rst +0 -14
- awscli/examples/opsworks/update-layer.rst +0 -14
- awscli/examples/opsworks/update-my-user-profile.rst +0 -16
- awscli/examples/opsworks/update-rds-db-instance.rst +0 -18
- awscli/examples/opsworks/update-volume.rst +0 -16
- awscli/examples/opsworkscm/associate-node.rst +0 -22
- awscli/examples/opsworkscm/create-backup.rst +0 -46
- awscli/examples/opsworkscm/create-server.rst +0 -48
- awscli/examples/opsworkscm/delete-backup.rst +0 -17
- awscli/examples/opsworkscm/delete-server.rst +0 -16
- awscli/examples/opsworkscm/describe-account-attributes.rst +0 -26
- awscli/examples/opsworkscm/describe-backups.rst +0 -44
- awscli/examples/opsworkscm/describe-events.rst +0 -21
- awscli/examples/opsworkscm/describe-node-association-status.rst +0 -20
- awscli/examples/opsworkscm/describe-servers.rst +0 -48
- awscli/examples/opsworkscm/disassociate-node.rst +0 -19
- awscli/examples/opsworkscm/restore-server.rst +0 -20
- awscli/examples/opsworkscm/start-maintenance.rst +0 -39
- awscli/examples/opsworkscm/update-server-engine-attributes.rst +0 -43
- awscli/examples/opsworkscm/update-server.rst +0 -42
- awscli/examples/qldb/cancel-journal-kinesis-stream.rst +0 -15
- awscli/examples/qldb/create-ledger.rst +0 -43
- awscli/examples/qldb/delete-ledger.rst +0 -10
- awscli/examples/qldb/describe-journal-kinesis-stream.rst +0 -29
- awscli/examples/qldb/describe-journal-s3-export.rst +0 -30
- awscli/examples/qldb/describe-ledger.rst +0 -23
- awscli/examples/qldb/export-journal-to-s3.rst +0 -28
- awscli/examples/qldb/get-block.rst +0 -55
- awscli/examples/qldb/get-digest.rst +0 -17
- awscli/examples/qldb/get-revision.rst +0 -57
- awscli/examples/qldb/list-journal-kinesis-streams-for-ledger.rst +0 -30
- awscli/examples/qldb/list-journal-s3-exports-for-ledger.rst +0 -31
- awscli/examples/qldb/list-journal-s3-exports.rst +0 -46
- awscli/examples/qldb/list-ledgers.rst +0 -24
- awscli/examples/qldb/list-tags-for-resource.rst +0 -17
- awscli/examples/qldb/stream-journal-to-kinesis.rst +0 -46
- awscli/examples/qldb/tag-resource.rst +0 -11
- awscli/examples/qldb/untag-resource.rst +0 -11
- awscli/examples/qldb/update-ledger-permissions-mode.rst +0 -34
- awscli/examples/qldb/update-ledger.rst +0 -63
- awscli/examples/robomaker/batch-describe-simulation-job.rst +0 -150
- awscli/examples/robomaker/cancel-simulation-job.rst +0 -6
- awscli/examples/robomaker/create-deployment-job.rst +0 -37
- awscli/examples/robomaker/create-fleet.rst +0 -18
- awscli/examples/robomaker/create-robot-application-version.rst +0 -31
- awscli/examples/robomaker/create-robot-application.rst +0 -29
- awscli/examples/robomaker/create-robot.rst +0 -20
- awscli/examples/robomaker/create-simulation-application-version.rst +0 -39
- awscli/examples/robomaker/create-simulation-application.rst +0 -38
- awscli/examples/robomaker/create-simulation-job.rst +0 -43
- awscli/examples/robomaker/delete-fleet.rst +0 -7
- awscli/examples/robomaker/delete-robot-application.rst +0 -7
- awscli/examples/robomaker/delete-robot.rst +0 -7
- awscli/examples/robomaker/delete-simulation-application.rst +0 -7
- awscli/examples/robomaker/deregister-robot.rst +0 -14
- awscli/examples/robomaker/describe-deployment-job.rst +0 -38
- awscli/examples/robomaker/describe-fleet.rst +0 -28
- awscli/examples/robomaker/describe-robot-application.rst +0 -29
- awscli/examples/robomaker/describe-robot.rst +0 -21
- awscli/examples/robomaker/describe-simulation-application.rst +0 -37
- awscli/examples/robomaker/describe-simulation-job.rst +0 -45
- awscli/examples/robomaker/list-deployment-jobs.rst +0 -57
- awscli/examples/robomaker/list-fleets.rst +0 -22
- awscli/examples/robomaker/list-robot-applications.rst +0 -32
- awscli/examples/robomaker/list-robots.rst +0 -45
- awscli/examples/robomaker/list-simulation-applications.rst +0 -50
- awscli/examples/robomaker/list-simulation-jobs.rst +0 -80
- awscli/examples/robomaker/list-tags-for-resource.rst +0 -16
- awscli/examples/robomaker/register-robot.rst +0 -14
- awscli/examples/robomaker/restart-simulation-job.rst +0 -7
- awscli/examples/robomaker/sync-deployment-job.rst +0 -30
- awscli/examples/robomaker/tag-resource.rst +0 -7
- awscli/examples/robomaker/untag-resource.rst +0 -7
- awscli/examples/robomaker/update-robot-application.rst +0 -28
- awscli/examples/robomaker/update-simulation-application.rst +0 -36
- {awscli-1.40.17.data → awscli-1.44.26.data}/scripts/aws +0 -0
- {awscli-1.40.17.data → awscli-1.44.26.data}/scripts/aws.cmd +0 -0
- {awscli-1.40.17.data → awscli-1.44.26.data}/scripts/aws_bash_completer +0 -0
- {awscli-1.40.17.data → awscli-1.44.26.data}/scripts/aws_completer +0 -0
- {awscli-1.40.17.data → awscli-1.44.26.data}/scripts/aws_zsh_completer.sh +0 -0
- {awscli-1.40.17.dist-info → awscli-1.44.26.dist-info}/LICENSE.txt +0 -0
- {awscli-1.40.17.dist-info → awscli-1.44.26.dist-info}/WHEEL +0 -0
- {awscli-1.40.17.dist-info → awscli-1.44.26.dist-info}/top_level.txt +0 -0
|
@@ -11,9 +11,7 @@
|
|
|
11
11
|
# ANY KIND, either express or implied. See the License for the specific
|
|
12
12
|
# language governing permissions and limitations under the License.
|
|
13
13
|
|
|
14
|
-
from awscli.customizations.emr import emrutils
|
|
15
|
-
from awscli.customizations.emr import constants
|
|
16
|
-
from awscli.customizations.emr import exceptions
|
|
14
|
+
from awscli.customizations.emr import constants, emrutils, exceptions
|
|
17
15
|
|
|
18
16
|
|
|
19
17
|
def build_step_config_list(parsed_step_list, region, release_label):
|
|
@@ -29,23 +27,24 @@ def build_step_config_list(parsed_step_list, region, release_label):
|
|
|
29
27
|
step_config = build_custom_jar_step(parsed_step=step)
|
|
30
28
|
elif step_type == constants.STREAMING:
|
|
31
29
|
step_config = build_streaming_step(
|
|
32
|
-
parsed_step=step, release_label=release_label
|
|
30
|
+
parsed_step=step, release_label=release_label
|
|
31
|
+
)
|
|
33
32
|
elif step_type == constants.HIVE:
|
|
34
33
|
step_config = build_hive_step(
|
|
35
|
-
parsed_step=step, region=region,
|
|
36
|
-
|
|
34
|
+
parsed_step=step, region=region, release_label=release_label
|
|
35
|
+
)
|
|
37
36
|
elif step_type == constants.PIG:
|
|
38
37
|
step_config = build_pig_step(
|
|
39
|
-
parsed_step=step, region=region,
|
|
40
|
-
|
|
38
|
+
parsed_step=step, region=region, release_label=release_label
|
|
39
|
+
)
|
|
41
40
|
elif step_type == constants.IMPALA:
|
|
42
41
|
step_config = build_impala_step(
|
|
43
|
-
parsed_step=step, region=region,
|
|
44
|
-
|
|
42
|
+
parsed_step=step, region=region, release_label=release_label
|
|
43
|
+
)
|
|
45
44
|
elif step_type == constants.SPARK:
|
|
46
45
|
step_config = build_spark_step(
|
|
47
|
-
parsed_step=step, region=region,
|
|
48
|
-
|
|
46
|
+
parsed_step=step, region=region, release_label=release_label
|
|
47
|
+
)
|
|
49
48
|
else:
|
|
50
49
|
raise exceptions.UnknownStepTypeError(step_type=step_type)
|
|
51
50
|
|
|
@@ -57,14 +56,17 @@ def build_step_config_list(parsed_step_list, region, release_label):
|
|
|
57
56
|
def build_custom_jar_step(parsed_step):
|
|
58
57
|
name = _apply_default_value(
|
|
59
58
|
arg=parsed_step.get('Name'),
|
|
60
|
-
value=constants.DEFAULT_CUSTOM_JAR_STEP_NAME
|
|
59
|
+
value=constants.DEFAULT_CUSTOM_JAR_STEP_NAME,
|
|
60
|
+
)
|
|
61
61
|
action_on_failure = _apply_default_value(
|
|
62
62
|
arg=parsed_step.get('ActionOnFailure'),
|
|
63
|
-
value=constants.DEFAULT_FAILURE_ACTION
|
|
63
|
+
value=constants.DEFAULT_FAILURE_ACTION,
|
|
64
|
+
)
|
|
64
65
|
emrutils.check_required_field(
|
|
65
66
|
structure=constants.CUSTOM_JAR_STEP_CONFIG,
|
|
66
67
|
name='Jar',
|
|
67
|
-
value=parsed_step.get('Jar')
|
|
68
|
+
value=parsed_step.get('Jar'),
|
|
69
|
+
)
|
|
68
70
|
return emrutils.build_step(
|
|
69
71
|
jar=parsed_step.get('Jar'),
|
|
70
72
|
args=parsed_step.get('Args'),
|
|
@@ -72,22 +74,27 @@ def build_custom_jar_step(parsed_step):
|
|
|
72
74
|
action_on_failure=action_on_failure,
|
|
73
75
|
main_class=parsed_step.get('MainClass'),
|
|
74
76
|
properties=emrutils.parse_key_value_string(
|
|
75
|
-
parsed_step.get('Properties')
|
|
77
|
+
parsed_step.get('Properties')
|
|
78
|
+
),
|
|
79
|
+
log_uri=parsed_step.get('LogUri'),
|
|
80
|
+
encryption_key_arn=parsed_step.get('EncryptionKeyArn'),
|
|
81
|
+
)
|
|
76
82
|
|
|
77
83
|
|
|
78
84
|
def build_streaming_step(parsed_step, release_label):
|
|
79
85
|
name = _apply_default_value(
|
|
80
86
|
arg=parsed_step.get('Name'),
|
|
81
|
-
value=constants.DEFAULT_STREAMING_STEP_NAME
|
|
87
|
+
value=constants.DEFAULT_STREAMING_STEP_NAME,
|
|
88
|
+
)
|
|
82
89
|
action_on_failure = _apply_default_value(
|
|
83
90
|
arg=parsed_step.get('ActionOnFailure'),
|
|
84
|
-
value=constants.DEFAULT_FAILURE_ACTION
|
|
91
|
+
value=constants.DEFAULT_FAILURE_ACTION,
|
|
92
|
+
)
|
|
85
93
|
|
|
86
94
|
args = parsed_step.get('Args')
|
|
87
95
|
emrutils.check_required_field(
|
|
88
|
-
structure=constants.STREAMING_STEP_CONFIG,
|
|
89
|
-
|
|
90
|
-
value=args)
|
|
96
|
+
structure=constants.STREAMING_STEP_CONFIG, name='Args', value=args
|
|
97
|
+
)
|
|
91
98
|
emrutils.check_empty_string_list(name='Args', value=args)
|
|
92
99
|
args_list = []
|
|
93
100
|
|
|
@@ -103,27 +110,34 @@ def build_streaming_step(parsed_step, release_label):
|
|
|
103
110
|
jar=jar,
|
|
104
111
|
args=args_list,
|
|
105
112
|
name=name,
|
|
106
|
-
action_on_failure=action_on_failure
|
|
113
|
+
action_on_failure=action_on_failure,
|
|
114
|
+
log_uri=parsed_step.get('LogUri'),
|
|
115
|
+
encryption_key_arn=parsed_step.get('EncryptionKeyArn'),
|
|
116
|
+
)
|
|
107
117
|
|
|
108
118
|
|
|
109
119
|
def build_hive_step(parsed_step, release_label, region=None):
|
|
110
120
|
args = parsed_step.get('Args')
|
|
111
121
|
emrutils.check_required_field(
|
|
112
|
-
structure=constants.HIVE_STEP_CONFIG, name='Args', value=args
|
|
122
|
+
structure=constants.HIVE_STEP_CONFIG, name='Args', value=args
|
|
123
|
+
)
|
|
113
124
|
emrutils.check_empty_string_list(name='Args', value=args)
|
|
114
125
|
name = _apply_default_value(
|
|
115
|
-
arg=parsed_step.get('Name'),
|
|
116
|
-
|
|
117
|
-
action_on_failure =
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
126
|
+
arg=parsed_step.get('Name'), value=constants.DEFAULT_HIVE_STEP_NAME
|
|
127
|
+
)
|
|
128
|
+
action_on_failure = _apply_default_value(
|
|
129
|
+
arg=parsed_step.get('ActionOnFailure'),
|
|
130
|
+
value=constants.DEFAULT_FAILURE_ACTION,
|
|
131
|
+
)
|
|
121
132
|
|
|
122
133
|
return emrutils.build_step(
|
|
123
134
|
jar=_get_runner_jar(release_label, region),
|
|
124
135
|
args=_build_hive_args(args, release_label, region),
|
|
125
136
|
name=name,
|
|
126
|
-
action_on_failure=action_on_failure
|
|
137
|
+
action_on_failure=action_on_failure,
|
|
138
|
+
log_uri=parsed_step.get('LogUri'),
|
|
139
|
+
encryption_key_arn=parsed_step.get('EncryptionKeyArn'),
|
|
140
|
+
)
|
|
127
141
|
|
|
128
142
|
|
|
129
143
|
def _build_hive_args(args, release_label, region):
|
|
@@ -131,8 +145,11 @@ def _build_hive_args(args, release_label, region):
|
|
|
131
145
|
if release_label:
|
|
132
146
|
args_list.append(constants.HIVE_SCRIPT_COMMAND)
|
|
133
147
|
else:
|
|
134
|
-
args_list.append(
|
|
135
|
-
|
|
148
|
+
args_list.append(
|
|
149
|
+
emrutils.build_s3_link(
|
|
150
|
+
relative_path=constants.HIVE_SCRIPT_PATH, region=region
|
|
151
|
+
)
|
|
152
|
+
)
|
|
136
153
|
|
|
137
154
|
args_list.append(constants.RUN_HIVE_SCRIPT)
|
|
138
155
|
|
|
@@ -149,20 +166,25 @@ def _build_hive_args(args, release_label, region):
|
|
|
149
166
|
def build_pig_step(parsed_step, release_label, region=None):
|
|
150
167
|
args = parsed_step.get('Args')
|
|
151
168
|
emrutils.check_required_field(
|
|
152
|
-
structure=constants.PIG_STEP_CONFIG, name='Args', value=args
|
|
169
|
+
structure=constants.PIG_STEP_CONFIG, name='Args', value=args
|
|
170
|
+
)
|
|
153
171
|
emrutils.check_empty_string_list(name='Args', value=args)
|
|
154
172
|
name = _apply_default_value(
|
|
155
|
-
arg=parsed_step.get('Name'),
|
|
156
|
-
|
|
173
|
+
arg=parsed_step.get('Name'), value=constants.DEFAULT_PIG_STEP_NAME
|
|
174
|
+
)
|
|
157
175
|
action_on_failure = _apply_default_value(
|
|
158
176
|
arg=parsed_step.get('ActionOnFailure'),
|
|
159
|
-
value=constants.DEFAULT_FAILURE_ACTION
|
|
177
|
+
value=constants.DEFAULT_FAILURE_ACTION,
|
|
178
|
+
)
|
|
160
179
|
|
|
161
180
|
return emrutils.build_step(
|
|
162
181
|
jar=_get_runner_jar(release_label, region),
|
|
163
182
|
args=_build_pig_args(args, release_label, region),
|
|
164
183
|
name=name,
|
|
165
|
-
action_on_failure=action_on_failure
|
|
184
|
+
action_on_failure=action_on_failure,
|
|
185
|
+
log_uri=parsed_step.get('LogUri'),
|
|
186
|
+
encryption_key_arn=parsed_step.get('EncryptionKeyArn'),
|
|
187
|
+
)
|
|
166
188
|
|
|
167
189
|
|
|
168
190
|
def _build_pig_args(args, release_label, region):
|
|
@@ -170,8 +192,11 @@ def _build_pig_args(args, release_label, region):
|
|
|
170
192
|
if release_label:
|
|
171
193
|
args_list.append(constants.PIG_SCRIPT_COMMAND)
|
|
172
194
|
else:
|
|
173
|
-
args_list.append(
|
|
174
|
-
|
|
195
|
+
args_list.append(
|
|
196
|
+
emrutils.build_s3_link(
|
|
197
|
+
relative_path=constants.PIG_SCRIPT_PATH, region=region
|
|
198
|
+
)
|
|
199
|
+
)
|
|
175
200
|
|
|
176
201
|
args_list.append(constants.RUN_PIG_SCRIPT)
|
|
177
202
|
|
|
@@ -189,43 +214,55 @@ def build_impala_step(parsed_step, release_label, region=None):
|
|
|
189
214
|
if release_label:
|
|
190
215
|
raise exceptions.UnknownStepTypeError(step_type=constants.IMPALA)
|
|
191
216
|
name = _apply_default_value(
|
|
192
|
-
arg=parsed_step.get('Name'),
|
|
193
|
-
|
|
217
|
+
arg=parsed_step.get('Name'), value=constants.DEFAULT_IMPALA_STEP_NAME
|
|
218
|
+
)
|
|
194
219
|
action_on_failure = _apply_default_value(
|
|
195
220
|
arg=parsed_step.get('ActionOnFailure'),
|
|
196
|
-
value=constants.DEFAULT_FAILURE_ACTION
|
|
221
|
+
value=constants.DEFAULT_FAILURE_ACTION,
|
|
222
|
+
)
|
|
197
223
|
args_list = [
|
|
198
224
|
emrutils.build_s3_link(
|
|
199
|
-
relative_path=constants.IMPALA_INSTALL_PATH, region=region
|
|
200
|
-
|
|
225
|
+
relative_path=constants.IMPALA_INSTALL_PATH, region=region
|
|
226
|
+
),
|
|
227
|
+
constants.RUN_IMPALA_SCRIPT,
|
|
228
|
+
]
|
|
201
229
|
args = parsed_step.get('Args')
|
|
202
230
|
emrutils.check_required_field(
|
|
203
|
-
structure=constants.IMPALA_STEP_CONFIG, name='Args', value=args
|
|
231
|
+
structure=constants.IMPALA_STEP_CONFIG, name='Args', value=args
|
|
232
|
+
)
|
|
204
233
|
args_list += args
|
|
205
234
|
|
|
206
235
|
return emrutils.build_step(
|
|
207
236
|
jar=emrutils.get_script_runner(region),
|
|
208
237
|
args=args_list,
|
|
209
238
|
name=name,
|
|
210
|
-
action_on_failure=action_on_failure
|
|
239
|
+
action_on_failure=action_on_failure,
|
|
240
|
+
log_uri=parsed_step.get('LogUri'),
|
|
241
|
+
encryption_key_arn=parsed_step.get('EncryptionKeyArn'),
|
|
242
|
+
)
|
|
211
243
|
|
|
212
244
|
|
|
213
245
|
def build_spark_step(parsed_step, release_label, region=None):
|
|
214
246
|
name = _apply_default_value(
|
|
215
|
-
arg=parsed_step.get('Name'),
|
|
216
|
-
|
|
247
|
+
arg=parsed_step.get('Name'), value=constants.DEFAULT_SPARK_STEP_NAME
|
|
248
|
+
)
|
|
217
249
|
action_on_failure = _apply_default_value(
|
|
218
250
|
arg=parsed_step.get('ActionOnFailure'),
|
|
219
|
-
value=constants.DEFAULT_FAILURE_ACTION
|
|
251
|
+
value=constants.DEFAULT_FAILURE_ACTION,
|
|
252
|
+
)
|
|
220
253
|
args = parsed_step.get('Args')
|
|
221
254
|
emrutils.check_required_field(
|
|
222
|
-
structure=constants.SPARK_STEP_CONFIG, name='Args', value=args
|
|
255
|
+
structure=constants.SPARK_STEP_CONFIG, name='Args', value=args
|
|
256
|
+
)
|
|
223
257
|
|
|
224
258
|
return emrutils.build_step(
|
|
225
259
|
jar=_get_runner_jar(release_label, region),
|
|
226
260
|
args=_build_spark_args(args, release_label, region),
|
|
227
261
|
name=name,
|
|
228
|
-
action_on_failure=action_on_failure
|
|
262
|
+
action_on_failure=action_on_failure,
|
|
263
|
+
log_uri=parsed_step.get('LogUri'),
|
|
264
|
+
encryption_key_arn=parsed_step.get('EncryptionKeyArn'),
|
|
265
|
+
)
|
|
229
266
|
|
|
230
267
|
|
|
231
268
|
def _build_spark_args(args, release_label, region):
|
|
@@ -247,5 +284,8 @@ def _apply_default_value(arg, value):
|
|
|
247
284
|
|
|
248
285
|
|
|
249
286
|
def _get_runner_jar(release_label, region):
|
|
250
|
-
return
|
|
287
|
+
return (
|
|
288
|
+
constants.COMMAND_RUNNER
|
|
289
|
+
if release_label
|
|
251
290
|
else emrutils.get_script_runner(region)
|
|
291
|
+
)
|
|
@@ -15,6 +15,7 @@ from functools import partial
|
|
|
15
15
|
|
|
16
16
|
from awscli.compat import urlopen
|
|
17
17
|
from awscli.customizations.commands import BasicCommand
|
|
18
|
+
from awscli.utils import create_nested_client
|
|
18
19
|
|
|
19
20
|
|
|
20
21
|
class GetGameSessionLogCommand(BasicCommand):
|
|
@@ -28,8 +29,8 @@ class GetGameSessionLogCommand(BasicCommand):
|
|
|
28
29
|
]
|
|
29
30
|
|
|
30
31
|
def _run_main(self, args, parsed_globals):
|
|
31
|
-
client =
|
|
32
|
-
'gamelift', region_name=parsed_globals.region,
|
|
32
|
+
client = create_nested_client(
|
|
33
|
+
self._session, 'gamelift', region_name=parsed_globals.region,
|
|
33
34
|
endpoint_url=parsed_globals.endpoint_url,
|
|
34
35
|
verify=parsed_globals.verify_ssl
|
|
35
36
|
)
|
|
@@ -21,6 +21,20 @@ from s3transfer import S3Transfer
|
|
|
21
21
|
|
|
22
22
|
from awscli.customizations.commands import BasicCommand
|
|
23
23
|
from awscli.customizations.s3.utils import human_readable_size
|
|
24
|
+
from awscli.utils import create_nested_client
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def parse_tags(raw_tags_list):
|
|
28
|
+
"""Parse tags from Key=Value format to GameLift API format."""
|
|
29
|
+
tags_list = []
|
|
30
|
+
if raw_tags_list:
|
|
31
|
+
for tag in raw_tags_list:
|
|
32
|
+
if '=' in tag:
|
|
33
|
+
key, value = tag.split('=', 1)
|
|
34
|
+
else:
|
|
35
|
+
key, value = tag, ''
|
|
36
|
+
tags_list.append({'Key': key, 'Value': value})
|
|
37
|
+
return tags_list
|
|
24
38
|
|
|
25
39
|
|
|
26
40
|
class UploadBuildCommand(BasicCommand):
|
|
@@ -39,21 +53,22 @@ class UploadBuildCommand(BasicCommand):
|
|
|
39
53
|
'The version of the GameLift server SDK used to '
|
|
40
54
|
'create the game server'},
|
|
41
55
|
{'name': 'operating-system', 'required': False,
|
|
42
|
-
'help_text': 'The operating system the build runs on'}
|
|
56
|
+
'help_text': 'The operating system the build runs on'},
|
|
57
|
+
{'name': 'tags', 'required': False, 'nargs': '+',
|
|
58
|
+
'help_text': 'Tags to assign to the build. Format: Key=Value'}
|
|
43
59
|
]
|
|
44
60
|
|
|
45
61
|
def _run_main(self, args, parsed_globals):
|
|
46
|
-
gamelift_client =
|
|
47
|
-
'gamelift', region_name=parsed_globals.region,
|
|
62
|
+
gamelift_client = create_nested_client(
|
|
63
|
+
self._session, 'gamelift', region_name=parsed_globals.region,
|
|
48
64
|
endpoint_url=parsed_globals.endpoint_url,
|
|
49
65
|
verify=parsed_globals.verify_ssl
|
|
50
66
|
)
|
|
51
67
|
# Validate a build directory
|
|
52
68
|
if not validate_directory(args.build_root):
|
|
53
69
|
sys.stderr.write(
|
|
54
|
-
'Fail to upload
|
|
70
|
+
f'Fail to upload {args.build_root}. '
|
|
55
71
|
'The build root directory is empty or does not exist.\n'
|
|
56
|
-
% (args.build_root)
|
|
57
72
|
)
|
|
58
73
|
|
|
59
74
|
return 255
|
|
@@ -66,6 +81,8 @@ class UploadBuildCommand(BasicCommand):
|
|
|
66
81
|
create_build_kwargs['OperatingSystem'] = args.operating_system
|
|
67
82
|
if args.server_sdk_version:
|
|
68
83
|
create_build_kwargs['ServerSdkVersion'] = args.server_sdk_version
|
|
84
|
+
if args.tags:
|
|
85
|
+
create_build_kwargs['Tags'] = parse_tags(args.tags)
|
|
69
86
|
response = gamelift_client.create_build(**create_build_kwargs)
|
|
70
87
|
build_id = response['Build']['BuildId']
|
|
71
88
|
|
|
@@ -81,8 +98,9 @@ class UploadBuildCommand(BasicCommand):
|
|
|
81
98
|
access_key = upload_credentials['AccessKeyId']
|
|
82
99
|
secret_key = upload_credentials['SecretAccessKey']
|
|
83
100
|
session_token = upload_credentials['SessionToken']
|
|
84
|
-
s3_client =
|
|
85
|
-
's3',
|
|
101
|
+
s3_client = create_nested_client(
|
|
102
|
+
self._session, 's3',
|
|
103
|
+
aws_access_key_id=access_key,
|
|
86
104
|
aws_secret_access_key=secret_key,
|
|
87
105
|
aws_session_token=session_token,
|
|
88
106
|
region_name=parsed_globals.region,
|
|
@@ -92,7 +110,7 @@ class UploadBuildCommand(BasicCommand):
|
|
|
92
110
|
s3_transfer_mgr = S3Transfer(s3_client)
|
|
93
111
|
|
|
94
112
|
try:
|
|
95
|
-
fd, temporary_zipfile = tempfile.mkstemp('
|
|
113
|
+
fd, temporary_zipfile = tempfile.mkstemp(f'{build_id}.zip')
|
|
96
114
|
zip_directory(temporary_zipfile, args.build_root)
|
|
97
115
|
s3_transfer_mgr.upload_file(
|
|
98
116
|
temporary_zipfile, bucket, key,
|
|
@@ -106,8 +124,8 @@ class UploadBuildCommand(BasicCommand):
|
|
|
106
124
|
os.remove(temporary_zipfile)
|
|
107
125
|
|
|
108
126
|
sys.stdout.write(
|
|
109
|
-
'Successfully uploaded
|
|
110
|
-
'Build ID:
|
|
127
|
+
f'Successfully uploaded {args.build_root} to AWS GameLift\n'
|
|
128
|
+
f'Build ID: {build_id}\n')
|
|
111
129
|
|
|
112
130
|
return 0
|
|
113
131
|
|
|
@@ -140,7 +158,7 @@ def validate_directory(source_root):
|
|
|
140
158
|
|
|
141
159
|
# TODO: Remove this class once available to CLI from s3transfer
|
|
142
160
|
# docstring.
|
|
143
|
-
class ProgressPercentage
|
|
161
|
+
class ProgressPercentage:
|
|
144
162
|
def __init__(self, filename, label=None):
|
|
145
163
|
self._filename = filename
|
|
146
164
|
self._label = label
|
|
@@ -156,9 +174,6 @@ class ProgressPercentage(object):
|
|
|
156
174
|
if self._size > 0:
|
|
157
175
|
percentage = (self._seen_so_far / self._size) * 100
|
|
158
176
|
sys.stdout.write(
|
|
159
|
-
"\r
|
|
160
|
-
self._label, human_readable_size(self._seen_so_far),
|
|
161
|
-
human_readable_size(self._size), percentage
|
|
162
|
-
)
|
|
177
|
+
f"\r{self._label} {human_readable_size(self._seen_so_far)} / {human_readable_size(self._size)} ({percentage:.2f}%)"
|
|
163
178
|
)
|
|
164
179
|
sys.stdout.flush()
|
|
@@ -12,12 +12,18 @@
|
|
|
12
12
|
# language governing permissions and limitations under the License.
|
|
13
13
|
import sys
|
|
14
14
|
import os
|
|
15
|
+
|
|
16
|
+
from awscli.customizations.argrename import HIDDEN_ALIASES
|
|
17
|
+
from awscli.customizations.utils import uni_print
|
|
15
18
|
from botocore.client import Config
|
|
16
19
|
from botocore import UNSIGNED
|
|
17
20
|
from botocore.endpoint import DEFAULT_TIMEOUT
|
|
21
|
+
from botocore.useragent import register_feature_id
|
|
18
22
|
import jmespath
|
|
19
23
|
|
|
20
24
|
from awscli.compat import urlparse
|
|
25
|
+
from awscli.utils import resolve_v2_debug_mode
|
|
26
|
+
|
|
21
27
|
|
|
22
28
|
def register_parse_global_args(cli):
|
|
23
29
|
cli.register('top-level-args-parsed', resolve_types,
|
|
@@ -30,6 +36,8 @@ def register_parse_global_args(cli):
|
|
|
30
36
|
unique_id='resolve-cli-read-timeout')
|
|
31
37
|
cli.register('top-level-args-parsed', resolve_cli_connect_timeout,
|
|
32
38
|
unique_id='resolve-cli-connect-timeout')
|
|
39
|
+
cli.register('top-level-args-parsed', detect_migration_breakage,
|
|
40
|
+
unique_id='detect-migration-breakage')
|
|
33
41
|
|
|
34
42
|
|
|
35
43
|
def resolve_types(parsed_args, **kwargs):
|
|
@@ -90,6 +98,167 @@ def resolve_cli_connect_timeout(parsed_args, session, **kwargs):
|
|
|
90
98
|
arg_name = 'connect_timeout'
|
|
91
99
|
_resolve_timeout(session, parsed_args, arg_name)
|
|
92
100
|
|
|
101
|
+
def detect_migration_breakage(parsed_args, session, remaining_args, **kwargs):
|
|
102
|
+
if not resolve_v2_debug_mode(parsed_args):
|
|
103
|
+
return
|
|
104
|
+
region = parsed_args.region or session.get_config_variable('region')
|
|
105
|
+
s3_config = session.get_config_variable('s3')
|
|
106
|
+
if (
|
|
107
|
+
not session.get_scoped_config().get('cli_pager', None)
|
|
108
|
+
== '' and 'AWS_PAGER' not in os.environ
|
|
109
|
+
):
|
|
110
|
+
uni_print(
|
|
111
|
+
'\nAWS CLI v2 UPGRADE WARNING: By default, the AWS CLI v2 returns '
|
|
112
|
+
'all output through your operating system’s default pager '
|
|
113
|
+
'program. This is different from v1 behavior, where the system '
|
|
114
|
+
'pager is not used by default. To retain AWS CLI v1 behavior in '
|
|
115
|
+
'AWS CLI v2, set the `cli_pager` configuration setting, or the '
|
|
116
|
+
'`AWS_PAGER` environment variable, to the empty string. See '
|
|
117
|
+
'https://docs.aws.amazon.com/cli/latest/userguide/'
|
|
118
|
+
'cliv2-migration-changes.html#cliv2-migration-output-pager.\n',
|
|
119
|
+
out_file=sys.stderr
|
|
120
|
+
)
|
|
121
|
+
if 'PYTHONUTF8' in os.environ or 'PYTHONIOENCODING' in os.environ:
|
|
122
|
+
if 'AWS_CLI_FILE_ENCODING' not in os.environ:
|
|
123
|
+
uni_print(
|
|
124
|
+
'\nThe AWS CLI v2 does not support The `PYTHONUTF8` and '
|
|
125
|
+
'`PYTHONIOENCODING` environment variables, and instead uses '
|
|
126
|
+
'the `AWS_CLI_FILE_ENCODING` variable. This is different from '
|
|
127
|
+
'v1 behavior, where the former two variables are used '
|
|
128
|
+
'instead. To retain AWS CLI v1 behavior in AWS CLI v2, set '
|
|
129
|
+
'the `AWS_CLI_FILE_ENCODING` environment variable instead. '
|
|
130
|
+
'See https://docs.aws.amazon.com/cli/latest/userguide/'
|
|
131
|
+
'cliv2-migration-changes.html'
|
|
132
|
+
'#cliv2-migration-encodingenvvar.\n',
|
|
133
|
+
out_file=sys.stderr
|
|
134
|
+
)
|
|
135
|
+
if (
|
|
136
|
+
(
|
|
137
|
+
s3_config is None
|
|
138
|
+
or s3_config.get('us_east_1_regional_endpoint', 'legacy')
|
|
139
|
+
== 'legacy'
|
|
140
|
+
)
|
|
141
|
+
and region in ('us-east-1', None)
|
|
142
|
+
):
|
|
143
|
+
session.register(
|
|
144
|
+
'request-created.s3.*',
|
|
145
|
+
warn_if_east_configured_global_endpoint
|
|
146
|
+
)
|
|
147
|
+
session.register(
|
|
148
|
+
'request-created.s3api.*',
|
|
149
|
+
warn_if_east_configured_global_endpoint
|
|
150
|
+
)
|
|
151
|
+
if session.get_config_variable('api_versions'):
|
|
152
|
+
uni_print(
|
|
153
|
+
'\nAWS CLI v2 UPGRADE WARNING: AWS CLI v2 UPGRADE WARNING: '
|
|
154
|
+
'The AWS CLI v2 does not support calling older versions of AWS '
|
|
155
|
+
'service APIs via the `api_versions` configuration file setting. This '
|
|
156
|
+
'is different from v1 behavior, where this configuration setting '
|
|
157
|
+
'can be used to pin older API versions. To migrate to v2 '
|
|
158
|
+
'behavior, remove the `api_versions` configuration setting, and '
|
|
159
|
+
'test against the latest service API versions. See '
|
|
160
|
+
'https://docs.aws.amazon.com/cli/latest/userguide/'
|
|
161
|
+
'cliv2-migration-changes.html#cliv2-migration-api-versions.\n',
|
|
162
|
+
out_file = sys.stderr
|
|
163
|
+
)
|
|
164
|
+
if session.full_config.get('plugins', {}):
|
|
165
|
+
uni_print(
|
|
166
|
+
'\nAWS CLI v2 UPGRADE WARNING: In AWS CLI v2, plugins are '
|
|
167
|
+
'disabled by default, and support for plugins is provisional. '
|
|
168
|
+
'This is different from v1 behavior, where plugin support is URL '
|
|
169
|
+
'below to update your configuration to enable plugins in AWS CLI '
|
|
170
|
+
'v2. Also, be sure to lock into a particular version of the AWS '
|
|
171
|
+
'CLI and test the functionality of your plugins every time AWS '
|
|
172
|
+
'CLI v2 is upgraded. See https://docs.aws.amazon.com/cli/latest/'
|
|
173
|
+
'userguide/cliv2-migration-changes.html'
|
|
174
|
+
'#cliv2-migration-profile-plugins.\n',
|
|
175
|
+
out_file=sys.stderr
|
|
176
|
+
)
|
|
177
|
+
if (
|
|
178
|
+
parsed_args.command == 'ecr' and
|
|
179
|
+
remaining_args is not None and
|
|
180
|
+
remaining_args[0] == 'get-login'
|
|
181
|
+
):
|
|
182
|
+
uni_print(
|
|
183
|
+
'\nAWS CLI v2 UPGRADE WARNING: The `ecr get-login` command has '
|
|
184
|
+
'been removed in AWS CLI v2. You must use `ecr get-login-password` '
|
|
185
|
+
'instead. See https://docs.aws.amazon.com/cli/latest/userguide/'
|
|
186
|
+
'cliv2-migration-changes.html#cliv2-migration-ecr-get-login.\n',
|
|
187
|
+
out_file=sys.stderr
|
|
188
|
+
)
|
|
189
|
+
for working, obsolete in HIDDEN_ALIASES.items():
|
|
190
|
+
working_split = working.split('.')
|
|
191
|
+
working_service = working_split[0]
|
|
192
|
+
working_cmd = working_split[1]
|
|
193
|
+
working_param = working_split[2]
|
|
194
|
+
if (
|
|
195
|
+
parsed_args.command == working_service
|
|
196
|
+
and remaining_args is not None
|
|
197
|
+
and remaining_args[0] == working_cmd
|
|
198
|
+
and f"--{working_param}" in remaining_args
|
|
199
|
+
):
|
|
200
|
+
uni_print(
|
|
201
|
+
'\nAWS CLI v2 UPGRADE WARNING: You have entered command '
|
|
202
|
+
'arguments that use at least 1 of 21 built-in ("hidden") '
|
|
203
|
+
'aliases that were removed in AWS CLI v2. For this command '
|
|
204
|
+
'to work in AWS CLI v2, you must replace usage of the alias '
|
|
205
|
+
'with the corresponding parameter in AWS CLI v2. See '
|
|
206
|
+
'https://docs.aws.amazon.com/cli/latest/userguide/'
|
|
207
|
+
'cliv2-migration-changes.html#cliv2-migration-aliases.\n',
|
|
208
|
+
out_file=sys.stderr
|
|
209
|
+
)
|
|
210
|
+
# Register against the provide-client-params event to ensure that the
|
|
211
|
+
# feature ID is registered before any API requests are made. We
|
|
212
|
+
# cannot register the feature ID in this function because no
|
|
213
|
+
# botocore context is created at this point.
|
|
214
|
+
session.register(
|
|
215
|
+
'provide-client-params.*.*',
|
|
216
|
+
_register_v2_debug_feature_id
|
|
217
|
+
)
|
|
218
|
+
session.register('choose-signer.s3.*', warn_if_sigv2)
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
def _register_v2_debug_feature_id(params, model, **kwargs):
|
|
222
|
+
register_feature_id('CLI_V1_TO_V2_MIGRATION_DEBUG_MODE')
|
|
223
|
+
|
|
224
|
+
def warn_if_east_configured_global_endpoint(request, operation_name, **kwargs):
|
|
225
|
+
# The regional us-east-1 endpoint is used in certain cases (e.g.
|
|
226
|
+
# FIPS/Dual-Stack is enabled). Rather than duplicating this logic
|
|
227
|
+
# from botocore, we check the endpoint URL directly.
|
|
228
|
+
parsed_url = urlparse.urlparse(request.url)
|
|
229
|
+
if parsed_url.hostname.endswith('s3.amazonaws.com'):
|
|
230
|
+
uni_print(
|
|
231
|
+
'\nAWS CLI v2 UPGRADE WARNING: When you configure AWS CLI v2 to '
|
|
232
|
+
'use the `us-east-1` region, it uses the true regional endpoint '
|
|
233
|
+
'rather than the global endpoint. This is different from v1 '
|
|
234
|
+
'behavior, where the global endpoint would be used when the '
|
|
235
|
+
'region is `us-east-1`. To retain AWS CLI v1 behavior in AWS '
|
|
236
|
+
'CLI v2, configure the region setting to `aws-global`. See '
|
|
237
|
+
'https://docs.aws.amazon.com/cli/latest/userguide/'
|
|
238
|
+
'cliv2-migration-changes.html'
|
|
239
|
+
'#cliv2-migration-s3-regional-endpoint.\n',
|
|
240
|
+
out_file=sys.stderr
|
|
241
|
+
)
|
|
242
|
+
|
|
243
|
+
def warn_if_sigv2(
|
|
244
|
+
signing_name,
|
|
245
|
+
region_name,
|
|
246
|
+
signature_version,
|
|
247
|
+
context,
|
|
248
|
+
**kwargs
|
|
249
|
+
):
|
|
250
|
+
if context.get('auth_type', None) == 'v2':
|
|
251
|
+
uni_print(
|
|
252
|
+
'\nAWS CLI v2 UPGRADE WARNING: The AWS CLI v2 only uses Signature '
|
|
253
|
+
'v4 to authenticate Amazon S3 requests. This is different from '
|
|
254
|
+
'v1 behavior, where the signature used for Amazon S3 requests may '
|
|
255
|
+
'vary depending on configuration settings, region, and the '
|
|
256
|
+
'bucket being used. To migrate to AWS CLI v2 behavior, configure '
|
|
257
|
+
'the Signature Version S3 setting to version 4. See '
|
|
258
|
+
'https://docs.aws.amazon.com/cli/latest/userguide/'
|
|
259
|
+
'cliv2-migration-changes.html#cliv2-migration-sigv4.\n',
|
|
260
|
+
out_file=sys.stderr
|
|
261
|
+
)
|
|
93
262
|
|
|
94
263
|
def resolve_cli_read_timeout(parsed_args, session, **kwargs):
|
|
95
264
|
arg_name = 'read_timeout'
|
|
@@ -19,7 +19,7 @@ import time
|
|
|
19
19
|
|
|
20
20
|
from awscli.compat import get_stdout_text_writer
|
|
21
21
|
from awscli.customizations.commands import BasicCommand
|
|
22
|
-
from awscli.utils import is_a_tty
|
|
22
|
+
from awscli.utils import is_a_tty, create_nested_client
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
DESCRIPTION = (
|
|
@@ -240,8 +240,8 @@ class StartLiveTailCommand(BasicCommand):
|
|
|
240
240
|
self._output = get_stdout_text_writer()
|
|
241
241
|
|
|
242
242
|
def _get_client(self, parsed_globals):
|
|
243
|
-
return
|
|
244
|
-
"logs",
|
|
243
|
+
return create_nested_client(
|
|
244
|
+
self._session, "logs",
|
|
245
245
|
region_name=parsed_globals.region,
|
|
246
246
|
endpoint_url=parsed_globals.endpoint_url,
|
|
247
247
|
verify=parsed_globals.verify_ssl,
|