aptible-cli 0.23.0 → 0.24.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 809d2d53a19fb2e5d1994590b45fc667fff94712030b79ad9d235a0fa8012f02
4
- data.tar.gz: fae62dfb569ad369bda8d20f593bcd350e57eff1a2abc4fa6cafb6b9041f8e8f
3
+ metadata.gz: 57fd2762ecb6e2608548c08837ffa4c9cc3b233b4c4c12aae197001acd6c090a
4
+ data.tar.gz: a9612cf83e1fbd680b6b0cc41daab09a7028f581b3f52bb6663b176e77b9a321
5
5
  SHA512:
6
- metadata.gz: 9a93f2032ad6c569056d5a8cdf21034cf35147d0d12031b6c907a0e2b6984a7c895db2c6f01135e36d8d1d24e3a838174851de367cb7f34ec9c34016c8c6525d
7
- data.tar.gz: 8f67f7b07595457831aa438ff718470137496cd35244964bfb050adfda3ee093f8fc87cad364b2b0e3d42d6015eee2582bcdd8eeeca2707f3dc48e4f060e2c7a
6
+ metadata.gz: b044b0ead595595831ec2608c48cfe0782de00272f424b21c5e2c4c8f384d2d3778d5f1aa331ff3e55e77e3670582f49d13245ca10b77a6986efc4d360fb847e
7
+ data.tar.gz: 0a8a57cfd54a701edd13355b3048d570d0ba6a8f4d64199c95ec24130c34e1baf7a08afc79142df48f6d3cc37099a75bb452a7ae22c32c3dac53a753b9ce17f6
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- aptible-cli (0.23.0)
4
+ aptible-cli (0.24.1)
5
5
  activesupport (>= 4.0, < 6.0)
6
6
  aptible-api (~> 1.6.5)
7
7
  aptible-auth (~> 1.2.5)
data/README.md CHANGED
@@ -26,87 +26,87 @@ From `aptible help`:
26
26
  <!-- BEGIN USAGE -->
27
27
  ```
28
28
  Commands:
29
- aptible apps # List all applications
30
- aptible apps:create HANDLE # Create a new application
31
- aptible apps:deprovision # Deprovision an app
32
- aptible apps:rename OLD_HANDLE NEW_HANDLE [--environment ENVIRONMENT_HANDLE] # Rename an app handle. In order for the new app handle to appear in log drain and metric drain destinations, you must restart the app.
33
- aptible apps:scale SERVICE [--container-count COUNT] [--container-size SIZE_MB] [--container-profile PROFILE] # Scale a service
34
- aptible backup:list DB_HANDLE # List backups for a database
35
- aptible backup:orphaned # List backups associated with deprovisioned databases
36
- aptible backup:purge BACKUP_ID # Permanently delete a backup and any copies of it
37
- aptible backup:restore BACKUP_ID [--environment ENVIRONMENT_HANDLE] [--handle HANDLE] [--container-size SIZE_MB] [--disk-size SIZE_GB] [--container-profile PROFILE] [--iops IOPS] [--key-arn KEY_ARN] # Restore a backup
38
- aptible backup_retention_policy [ENVIRONMENT_HANDLE] # Show the current backup retention policy for the environment
39
- aptible backup_retention_policy:set [ENVIRONMENT_HANDLE] [--daily DAILY_BACKUPS] [--monthly MONTHLY_BACKUPS] [--yearly YEARLY_BACKUPS] [--make-copy|--no-make-copy] [--keep-final|--no-keep-final] [--force] # Change the environment's backup retention policy
40
- aptible config # Print an app's current configuration
41
- aptible config:add [VAR1=VAL1] [VAR2=VAL2] [...] # Add an ENV variable to an app
42
- aptible config:get [VAR1] # Print a specific key within an app's current configuration
43
- aptible config:rm [VAR1] [VAR2] [...] # Remove an ENV variable from an app
44
- aptible config:set [VAR1=VAL1] [VAR2=VAL2] [...] # Add an ENV variable to an app
45
- aptible config:unset [VAR1] [VAR2] [...] # Remove an ENV variable from an app
46
- aptible db:backup HANDLE # Backup a database
47
- aptible db:clone SOURCE DEST # Clone a database to create a new one
48
- aptible db:create HANDLE [--type TYPE] [--version VERSION] [--container-size SIZE_MB] [--disk-size SIZE_GB] [--container-profile PROFILE] [--iops IOPS] [--key-arn KEY_ARN] # Create a new database
49
- aptible db:deprovision HANDLE # Deprovision a database
50
- aptible db:dump HANDLE [pg_dump options] # Dump a remote database to file
51
- aptible db:execute HANDLE SQL_FILE [--on-error-stop] # Executes sql against a database
52
- aptible db:list # List all databases
53
- aptible db:modify HANDLE [--iops IOPS] [--volume-type [gp2, gp3]] # Modify a database disk
54
- aptible db:reload HANDLE # Reload a database
55
- aptible db:rename OLD_HANDLE NEW_HANDLE [--environment ENVIRONMENT_HANDLE] # Rename a database handle. In order for the new database handle to appear in log drain and metric drain destinations, you must reload the database.
56
- aptible db:replicate HANDLE REPLICA_HANDLE [--container-size SIZE_MB] [--disk-size SIZE_GB] [--container-profile PROFILE] [--iops IOPS] [--logical --version VERSION] [--key-arn KEY_ARN] # Create a replica/follower of a database
57
- aptible db:restart HANDLE [--container-size SIZE_MB] [--disk-size SIZE_GB] [--container-profile PROFILE] [--iops IOPS] [--volume-type [gp2, gp3]] # Restart a database
58
- aptible db:tunnel HANDLE # Create a local tunnel to a database
59
- aptible db:url HANDLE # Display a database URL
60
- aptible db:versions # List available database versions
61
- aptible deploy [OPTIONS] [VAR1=VAL1] [VAR2=VAL2] [...] # Deploy an app
62
- aptible endpoints:database:create DATABASE # Create a Database Endpoint
63
- aptible endpoints:database:modify --database DATABASE ENDPOINT_HOSTNAME # Modify a Database Endpoint
64
- aptible endpoints:deprovision [--app APP | --database DATABASE] ENDPOINT_HOSTNAME # Deprovision an App or Database Endpoint
65
- aptible endpoints:grpc:create [--app APP] SERVICE # Create an App gRPC Endpoint
66
- aptible endpoints:grpc:modify [--app APP] ENDPOINT_HOSTNAME # Modify an App gRPC Endpoint
67
- aptible endpoints:https:create [--app APP] SERVICE # Create an App HTTPS Endpoint
68
- aptible endpoints:https:modify [--app APP] ENDPOINT_HOSTNAME # Modify an App HTTPS Endpoint
69
- aptible endpoints:list [--app APP | --database DATABASE] # List Endpoints for an App or Database
70
- aptible endpoints:renew [--app APP] ENDPOINT_HOSTNAME # Renew an App Managed TLS Endpoint
71
- aptible endpoints:tcp:create [--app APP] SERVICE # Create an App TCP Endpoint
72
- aptible endpoints:tcp:modify [--app APP] ENDPOINT_HOSTNAME # Modify an App TCP Endpoint
73
- aptible endpoints:tls:create [--app APP] SERVICE # Create an App TLS Endpoint
74
- aptible endpoints:tls:modify [--app APP] ENDPOINT_HOSTNAME # Modify an App TLS Endpoint
75
- aptible environment:ca_cert # Retrieve the CA certificate associated with the environment
76
- aptible environment:list # List all environments
77
- aptible environment:rename OLD_HANDLE NEW_HANDLE # Rename an environment handle. In order for the new environment handle to appear in log drain/metric destinations, you must restart the apps/databases in this environment.
78
- aptible help [COMMAND] # Describe available commands or one specific command
79
- aptible log_drain:create:datadog HANDLE --url DATADOG_URL --environment ENVIRONMENT [--drain-apps true/false] [--drain_databases true/false] [--drain_ephemeral_sessions true/false] [--drain_proxies true/false] # Create a Datadog Log Drain
80
- aptible log_drain:create:elasticsearch HANDLE --db DATABASE_HANDLE --environment ENVIRONMENT [--drain-apps true/false] [--drain_databases true/false] [--drain_ephemeral_sessions true/false] [--drain_proxies true/false] # Create an Elasticsearch Log Drain
81
- aptible log_drain:create:https HANDLE --url URL --environment ENVIRONMENT [--drain-apps true/false] [--drain_databases true/false] [--drain_ephemeral_sessions true/false] [--drain_proxies true/false] # Create a HTTPS Drain
82
- aptible log_drain:create:logdna HANDLE --url LOGDNA_URL --environment ENVIRONMENT [--drain-apps true/false] [--drain_databases true/false] [--drain_ephemeral_sessions true/false] [--drain_proxies true/false] # Create a LogDNA Log Drain
83
- aptible log_drain:create:papertrail HANDLE --host PAPERTRAIL_HOST --port PAPERTRAIL_PORT --environment ENVIRONMENT [--drain-apps true/false] [--drain_databases true/false] [--drain_ephemeral_sessions true/false] [--drain_proxies true/false] # Create a Papertrail Log Drain
84
- aptible log_drain:create:sumologic HANDLE --url SUMOLOGIC_URL --environment ENVIRONMENT [--drain-apps true/false] [--drain_databases true/false] [--drain_ephemeral_sessions true/false] [--drain_proxies true/false] # Create a Sumologic Drain
85
- aptible log_drain:create:syslog HANDLE --host SYSLOG_HOST --port SYSLOG_PORT [--token TOKEN] --environment ENVIRONMENT [--drain-apps true/false] [--drain_databases true/false] [--drain_ephemeral_sessions true/false] [--drain_proxies true/false] # Create a Papertrail Log Drain
86
- aptible log_drain:deprovision HANDLE --environment ENVIRONMENT # Deprovisions a log drain
87
- aptible log_drain:list # List all Log Drains
88
- aptible login # Log in to Aptible
89
- aptible logs [--app APP | --database DATABASE] # Follows logs from a running app or database
90
- aptible logs_from_archive --bucket NAME --region REGION --stack NAME [ --decryption-keys ONE [OR MORE] ] [ --download-location LOCATION ] [ [ --string-matches ONE [OR MORE] ] | [ --app-id ID | --database-id ID | --endpoint-id ID | --container-id ID ] [ --start-date YYYY-MM-DD --end-date YYYY-MM-DD ] ] --bucket=BUCKET --region=REGION --stack=STACK # Retrieves container logs from an S3 archive in your own AWS account. You must provide your AWS credentials via the environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
91
- aptible maintenance:apps # List Apps impacted by maintenance schedules where restarts are required
92
- aptible maintenance:dbs # List Databases impacted by maintenance schedules where restarts are required
93
- aptible metric_drain:create:datadog HANDLE --api_key DATADOG_API_KEY --site DATADOG_SITE --environment ENVIRONMENT # Create a Datadog Metric Drain
94
- aptible metric_drain:create:influxdb HANDLE --db DATABASE_HANDLE --environment ENVIRONMENT # Create an InfluxDB Metric Drain
95
- aptible metric_drain:create:influxdb:custom HANDLE --username USERNAME --password PASSWORD --url URL_INCLUDING_PORT --db INFLUX_DATABASE_NAME --environment ENVIRONMENT # Create an InfluxDB Metric Drain
96
- aptible metric_drain:create:influxdb:customv2 HANDLE --org ORGANIZATION --token INFLUX_TOKEN --url URL_INCLUDING_PORT --bucket INFLUX_BUCKET_NAME --environment ENVIRONMENT # Create an InfluxDB v2 Metric Drain
97
- aptible metric_drain:deprovision HANDLE --environment ENVIRONMENT # Deprovisions a Metric Drain
98
- aptible metric_drain:list # List all Metric Drains
99
- aptible operation:cancel OPERATION_ID # Cancel a running operation
100
- aptible operation:follow OPERATION_ID # Follow logs of a running operation
101
- aptible operation:logs OPERATION_ID # View logs for given operation
102
- aptible rebuild # Rebuild an app, and restart its services
103
- aptible restart # Restart all services associated with an app
104
- aptible services # List Services for an App
105
- aptible services:settings SERVICE [--force-zero-downtime|--no-force-zero-downtime] [--simple-health-check|--no-simple-health-check] # Modifies the zero-downtime deploy setting for a service
106
- aptible services:sizing_policy SERVICE # Returns the associated sizing policy, if any
107
- aptible services:sizing_policy:set SERVICE --autoscaling-type (horizontal|vertical) [--metric-lookback-seconds SECONDS] [--percentile PERCENTILE] [--post-scale-up-cooldown-seconds SECONDS] [--post-scale-down-cooldown-seconds SECONDS] [--post-release-cooldown-seconds SECONDS] [--mem-cpu-ratio-r-threshold RATIO] [--mem-cpu-ratio-c-threshold RATIO] [--mem-scale-up-threshold THRESHOLD] [--mem-scale-down-threshold THRESHOLD] [--minimum-memory MEMORY] [--maximum-memory MEMORY] [--min-cpu-threshold THRESHOLD] [--max-cpu-threshold THRESHOLD] [--min-containers CONTAINERS] [--max-containers CONTAINERS] [--scale-up-step STEPS] [--scale-down-step STEPS] # Sets the sizing (autoscaling) policy for a service. This is not incremental, all arguments must be sent at once or they will be set to defaults.
108
- aptible ssh [COMMAND] # Run a command against an app
109
- aptible version # Print Aptible CLI version
29
+ aptible apps # List all applications
30
+ aptible apps:create HANDLE # Create a new application
31
+ aptible apps:deprovision # Deprovision an app
32
+ aptible apps:rename OLD_HANDLE NEW_HANDLE [--environment ENVIRONMENT_HANDLE] # Rename an app handle. In order for the new app handle to appear in log drain and metric drain destinations, you must restart the app.
33
+ aptible apps:scale SERVICE [--container-count COUNT] [--container-size SIZE_MB] [--container-profile PROFILE] # Scale a service
34
+ aptible backup:list DB_HANDLE # List backups for a database
35
+ aptible backup:orphaned # List backups associated with deprovisioned databases
36
+ aptible backup:purge BACKUP_ID # Permanently delete a backup and any copies of it
37
+ aptible backup:restore BACKUP_ID [--environment ENVIRONMENT_HANDLE] [--handle HANDLE] [--container-size SIZE_MB] [--disk-size SIZE_GB] [--container-profile PROFILE] [--iops IOPS] [--key-arn KEY_ARN] # Restore a backup
38
+ aptible backup_retention_policy [ENVIRONMENT_HANDLE] # Show the current backup retention policy for the environment
39
+ aptible backup_retention_policy:set [ENVIRONMENT_HANDLE] [--daily DAILY_BACKUPS] [--monthly MONTHLY_BACKUPS] [--yearly YEARLY_BACKUPS] [--make-copy|--no-make-copy] [--keep-final|--no-keep-final] [--force] # Change the environment's backup retention policy
40
+ aptible config # Print an app's current configuration
41
+ aptible config:add [VAR1=VAL1] [VAR2=VAL2] [...] # Add an ENV variable to an app
42
+ aptible config:get [VAR1] # Print a specific key within an app's current configuration
43
+ aptible config:rm [VAR1] [VAR2] [...] # Remove an ENV variable from an app
44
+ aptible config:set [VAR1=VAL1] [VAR2=VAL2] [...] # Add an ENV variable to an app
45
+ aptible config:unset [VAR1] [VAR2] [...] # Remove an ENV variable from an app
46
+ aptible db:backup HANDLE # Backup a database
47
+ aptible db:clone SOURCE DEST # Clone a database to create a new one
48
+ aptible db:create HANDLE [--type TYPE] [--version VERSION] [--container-size SIZE_MB] [--disk-size SIZE_GB] [--container-profile PROFILE] [--iops IOPS] [--key-arn KEY_ARN] # Create a new database
49
+ aptible db:deprovision HANDLE # Deprovision a database
50
+ aptible db:dump HANDLE [pg_dump options] # Dump a remote database to file
51
+ aptible db:execute HANDLE SQL_FILE [--on-error-stop] # Executes sql against a database
52
+ aptible db:list # List all databases
53
+ aptible db:modify HANDLE [--iops IOPS] [--volume-type [gp2, gp3]] # Modify a database disk
54
+ aptible db:reload HANDLE # Reload a database
55
+ aptible db:rename OLD_HANDLE NEW_HANDLE [--environment ENVIRONMENT_HANDLE] # Rename a database handle. In order for the new database handle to appear in log drain and metric drain destinations, you must reload the database.
56
+ aptible db:replicate HANDLE REPLICA_HANDLE [--container-size SIZE_MB] [--disk-size SIZE_GB] [--container-profile PROFILE] [--iops IOPS] [--logical --version VERSION] [--key-arn KEY_ARN] # Create a replica/follower of a database
57
+ aptible db:restart HANDLE [--container-size SIZE_MB] [--disk-size SIZE_GB] [--container-profile PROFILE] [--iops IOPS] [--volume-type [gp2, gp3]] # Restart a database
58
+ aptible db:tunnel HANDLE # Create a local tunnel to a database
59
+ aptible db:url HANDLE # Display a database URL
60
+ aptible db:versions # List available database versions
61
+ aptible deploy [OPTIONS] [VAR1=VAL1] [VAR2=VAL2] [...] # Deploy an app
62
+ aptible endpoints:database:create DATABASE # Create a Database Endpoint
63
+ aptible endpoints:database:modify --database DATABASE ENDPOINT_HOSTNAME # Modify a Database Endpoint
64
+ aptible endpoints:deprovision [--app APP | --database DATABASE] ENDPOINT_HOSTNAME # Deprovision an App or Database Endpoint
65
+ aptible endpoints:grpc:create [--app APP] SERVICE # Create an App gRPC Endpoint
66
+ aptible endpoints:grpc:modify [--app APP] ENDPOINT_HOSTNAME # Modify an App gRPC Endpoint
67
+ aptible endpoints:https:create [--app APP] SERVICE # Create an App HTTPS Endpoint
68
+ aptible endpoints:https:modify [--app APP] ENDPOINT_HOSTNAME # Modify an App HTTPS Endpoint
69
+ aptible endpoints:list [--app APP | --database DATABASE] # List Endpoints for an App or Database
70
+ aptible endpoints:renew [--app APP] ENDPOINT_HOSTNAME # Renew an App Managed TLS Endpoint
71
+ aptible endpoints:tcp:create [--app APP] SERVICE # Create an App TCP Endpoint
72
+ aptible endpoints:tcp:modify [--app APP] ENDPOINT_HOSTNAME # Modify an App TCP Endpoint
73
+ aptible endpoints:tls:create [--app APP] SERVICE # Create an App TLS Endpoint
74
+ aptible endpoints:tls:modify [--app APP] ENDPOINT_HOSTNAME # Modify an App TLS Endpoint
75
+ aptible environment:ca_cert # Retrieve the CA certificate associated with the environment
76
+ aptible environment:list # List all environments
77
+ aptible environment:rename OLD_HANDLE NEW_HANDLE # Rename an environment handle. In order for the new environment handle to appear in log drain/metric destinations, you must restart the apps/databases in this environment.
78
+ aptible help [COMMAND] # Describe available commands or one specific command
79
+ aptible log_drain:create:datadog HANDLE --url DATADOG_URL --environment ENVIRONMENT [--drain-apps true/false] [--drain_databases true/false] [--drain_ephemeral_sessions true/false] [--drain_proxies true/false] # Create a Datadog Log Drain
80
+ aptible log_drain:create:elasticsearch HANDLE --db DATABASE_HANDLE --environment ENVIRONMENT [--drain-apps true/false] [--drain_databases true/false] [--drain_ephemeral_sessions true/false] [--drain_proxies true/false] # Create an Elasticsearch Log Drain
81
+ aptible log_drain:create:https HANDLE --url URL --environment ENVIRONMENT [--drain-apps true/false] [--drain_databases true/false] [--drain_ephemeral_sessions true/false] [--drain_proxies true/false] # Create a HTTPS Drain
82
+ aptible log_drain:create:logdna HANDLE --url LOGDNA_URL --environment ENVIRONMENT [--drain-apps true/false] [--drain_databases true/false] [--drain_ephemeral_sessions true/false] [--drain_proxies true/false] # Create a LogDNA Log Drain
83
+ aptible log_drain:create:papertrail HANDLE --host PAPERTRAIL_HOST --port PAPERTRAIL_PORT --environment ENVIRONMENT [--drain-apps true/false] [--drain_databases true/false] [--drain_ephemeral_sessions true/false] [--drain_proxies true/false] # Create a Papertrail Log Drain
84
+ aptible log_drain:create:sumologic HANDLE --url SUMOLOGIC_URL --environment ENVIRONMENT [--drain-apps true/false] [--drain_databases true/false] [--drain_ephemeral_sessions true/false] [--drain_proxies true/false] # Create a Sumologic Drain
85
+ aptible log_drain:create:syslog HANDLE --host SYSLOG_HOST --port SYSLOG_PORT [--token TOKEN] --environment ENVIRONMENT [--drain-apps true/false] [--drain_databases true/false] [--drain_ephemeral_sessions true/false] [--drain_proxies true/false] # Create a Papertrail Log Drain
86
+ aptible log_drain:deprovision HANDLE --environment ENVIRONMENT # Deprovisions a log drain
87
+ aptible log_drain:list # List all Log Drains
88
+ aptible login # Log in to Aptible
89
+ aptible logs [--app APP | --database DATABASE] # Follows logs from a running app or database
90
+ aptible logs_from_archive --bucket NAME --region REGION --stack NAME [ --decryption-keys ONE [OR MORE] ] [ --download-location LOCATION ] [ [ --string-matches ONE [OR MORE] ] | [ --app-id ID | --database-id ID | --endpoint-id ID | --container-id ID ] [ --start-date YYYY-MM-DD --end-date YYYY-MM-DD ] ] --bucket=BUCKET --region=REGION --stack=STACK # Retrieves container logs from an S3 archive in your own AWS account. You must provide your AWS credentials via the environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
91
+ aptible maintenance:apps # List Apps impacted by maintenance schedules where restarts are required
92
+ aptible maintenance:dbs # List Databases impacted by maintenance schedules where restarts are required
93
+ aptible metric_drain:create:datadog HANDLE --api_key DATADOG_API_KEY --site DATADOG_SITE --environment ENVIRONMENT # Create a Datadog Metric Drain
94
+ aptible metric_drain:create:influxdb HANDLE --db DATABASE_HANDLE --environment ENVIRONMENT # Create an InfluxDB Metric Drain
95
+ aptible metric_drain:create:influxdb:custom HANDLE --username USERNAME --password PASSWORD --url URL_INCLUDING_PORT --db INFLUX_DATABASE_NAME --environment ENVIRONMENT # Create an InfluxDB Metric Drain
96
+ aptible metric_drain:create:influxdb:customv2 HANDLE --org ORGANIZATION --token INFLUX_TOKEN --url URL_INCLUDING_PORT --bucket INFLUX_BUCKET_NAME --environment ENVIRONMENT # Create an InfluxDB v2 Metric Drain
97
+ aptible metric_drain:deprovision HANDLE --environment ENVIRONMENT # Deprovisions a Metric Drain
98
+ aptible metric_drain:list # List all Metric Drains
99
+ aptible operation:cancel OPERATION_ID # Cancel a running operation
100
+ aptible operation:follow OPERATION_ID # Follow logs of a running operation
101
+ aptible operation:logs OPERATION_ID # View logs for given operation
102
+ aptible rebuild # Rebuild an app, and restart its services
103
+ aptible restart # Restart all services associated with an app
104
+ aptible services # List Services for an App
105
+ aptible services:autoscaling_policy SERVICE # Returns the associated sizing policy, if any
106
+ aptible services:autoscaling_policy:set SERVICE --autoscaling-type (horizontal|vertical) [--metric-lookback-seconds SECONDS] [--percentile PERCENTILE] [--post-scale-up-cooldown-seconds SECONDS] [--post-scale-down-cooldown-seconds SECONDS] [--post-release-cooldown-seconds SECONDS] [--mem-cpu-ratio-r-threshold RATIO] [--mem-cpu-ratio-c-threshold RATIO] [--mem-scale-up-threshold THRESHOLD] [--mem-scale-down-threshold THRESHOLD] [--minimum-memory MEMORY] [--maximum-memory MEMORY] [--min-cpu-threshold THRESHOLD] [--max-cpu-threshold THRESHOLD] [--min-containers CONTAINERS] [--max-containers CONTAINERS] [--scale-up-step STEPS] [--scale-down-step STEPS] # Sets the sizing (autoscaling) policy for a service. This is not incremental, all arguments must be sent at once or they will be set to defaults.
107
+ aptible services:settings SERVICE [--force-zero-downtime|--no-force-zero-downtime] [--simple-health-check|--no-simple-health-check] # Modifies the zero-downtime deploy setting for a service
108
+ aptible ssh [COMMAND] # Run a command against an app
109
+ aptible version # Print Aptible CLI version
110
110
  ```
111
111
  <!-- END USAGE -->
112
112
 
@@ -15,7 +15,7 @@ module Aptible
15
15
  module ClassMethods
16
16
  def app_options
17
17
  option :app
18
- option :environment
18
+ option :environment, aliases: '--env'
19
19
  option :remote, aliases: '-r'
20
20
  end
21
21
  end
@@ -37,11 +37,17 @@ module Aptible
37
37
 
38
38
  def ensure_default_environment
39
39
  environments = Aptible::Api::Account.all(token: fetch_token)
40
- return environments.first if environments.count == 1
41
-
42
- raise Thor::Error, <<-ERR.gsub(/\s+/, ' ').strip
43
- Multiple environments available, please specify with --environment
44
- ERR
40
+ case environments.count
41
+ when 0
42
+ e = 'No environments. Go to https://app.aptible.com/ to proceed'
43
+ raise Thor::Error, e
44
+ when 1
45
+ return environments.first
46
+ else
47
+ raise Thor::Error, <<-ERR.gsub(/\s+/, ' ').strip
48
+ Multiple environments available, please specify with --environment or --env
49
+ ERR
50
+ end
45
51
  end
46
52
  end
47
53
  end
@@ -20,7 +20,7 @@ module Aptible
20
20
 
21
21
  def declare_options(thor)
22
22
  thor.instance_exec(self) do |builder|
23
- option :environment
23
+ option :environment, aliases: '--env'
24
24
 
25
25
  if builder.database?
26
26
  option :database
@@ -157,6 +157,7 @@ module Aptible
157
157
  node.value('command', service.command || 'CMD')
158
158
  node.value('container_count', service.container_count)
159
159
  node.value('container_size', service.container_memory_limit_mb)
160
+ node.value('container_profile', service.instance_class.to_s[/[a-z]/])
160
161
 
161
162
  attach_app(node, app)
162
163
  end
@@ -9,7 +9,7 @@ module Aptible
9
9
  include Helpers::Token
10
10
 
11
11
  desc 'apps', 'List all applications'
12
- option :environment
12
+ option :environment, aliases: '--env'
13
13
  def apps
14
14
  Formatter.render(Renderer.current) do |root|
15
15
  root.grouped_keyed_list(
@@ -28,7 +28,7 @@ module Aptible
28
28
  end
29
29
 
30
30
  desc 'apps:create HANDLE', 'Create a new application'
31
- option :environment
31
+ option :environment, aliases: '--env'
32
32
  define_method 'apps:create' do |handle|
33
33
  environment = ensure_environment(options)
34
34
  app = environment.create_app(handle: handle)
@@ -69,9 +69,11 @@ module Aptible
69
69
  raise Thor::Error, m
70
70
  end
71
71
 
72
- if container_count.nil? && container_size.nil?
73
- raise Thor::Error,
74
- 'Provide at least --container-count or --container-size'
72
+ if container_count.nil? && container_size.nil? &&
73
+ container_profile.nil?
74
+ m = 'Provide at least --container-count, --container-size, ' \
75
+ 'or --container-profile'
76
+ raise Thor::Error, m
75
77
  end
76
78
 
77
79
  # We don't validate any parameters here: API will do that for us.
@@ -104,7 +106,7 @@ module Aptible
104
106
  ' ENVIRONMENT_HANDLE]', 'Rename an app handle. In order'\
105
107
  ' for the new app handle to appear in log drain and metric'\
106
108
  ' drain destinations, you must restart the app.'
107
- option :environment
109
+ option :environment, aliases: '--env'
108
110
  define_method 'apps:rename' do |old_handle, new_handle|
109
111
  env = ensure_environment(options)
110
112
  app = ensure_app(options.merge(app: old_handle))
@@ -14,7 +14,8 @@ module Aptible
14
14
  '[--key-arn KEY_ARN]',
15
15
  'Restore a backup'
16
16
  option :handle, desc: 'a name to use for the new database'
17
- option :environment, desc: 'a different environment to restore to'
17
+ option :environment, aliases: '--env',
18
+ desc: 'a different environment to restore to'
18
19
  option :container_size, type: :numeric
19
20
  option :size, type: :numeric
20
21
  option :disk_size, type: :numeric
@@ -68,9 +69,9 @@ module Aptible
68
69
  end
69
70
 
70
71
  desc 'backup:list DB_HANDLE', 'List backups for a database'
71
- option :environment
72
+ option :environment, aliases: '--env'
72
73
  option :max_age,
73
- default: '1mo',
74
+ default: '99y',
74
75
  desc: 'Limit backups returned (example usage: 1w, 1y, etc.)'
75
76
  define_method 'backup:list' do |handle|
76
77
  age = ChronicDuration.parse(options[:max_age])
@@ -95,8 +96,8 @@ module Aptible
95
96
 
96
97
  desc 'backup:orphaned', 'List backups associated with ' \
97
98
  'deprovisioned databases'
98
- option :environment
99
- option :max_age, default: '1y',
99
+ option :environment, aliases: '--env'
100
+ option :max_age, default: '99y',
100
101
  desc: 'Limit backups returned '\
101
102
  '(example usage: 1w, 1y, etc.)'
102
103
  define_method 'backup:orphaned' do
@@ -1,5 +1,4 @@
1
1
  require 'shellwords'
2
-
3
2
  module Aptible
4
3
  module CLI
5
4
  module Subcommands
@@ -72,6 +71,7 @@ module Aptible
72
71
  # FIXME: define_method - ?! Seriously, WTF Thor.
73
72
  app = ensure_app(options)
74
73
  env = Hash[args.map do |arg|
74
+ arg = arg.split('=')[0]
75
75
  validate_env_key!(arg)
76
76
  [arg, '']
77
77
  end]
@@ -14,7 +14,7 @@ module Aptible
14
14
  include Term::ANSIColor
15
15
 
16
16
  desc 'db:list', 'List all databases'
17
- option :environment
17
+ option :environment, aliases: '--env'
18
18
  define_method 'db:list' do
19
19
  Formatter.render(Renderer.current) do |root|
20
20
  root.grouped_keyed_list(
@@ -63,7 +63,7 @@ module Aptible
63
63
  option :disk_size, default: 10, type: :numeric
64
64
  option :size, type: :numeric
65
65
  option :key_arn, type: :string
66
- option :environment
66
+ option :environment, aliases: '--env'
67
67
  option :container_profile, type: :string,
68
68
  desc: 'Examples: m c r'
69
69
  option :iops, type: :numeric
@@ -126,7 +126,7 @@ module Aptible
126
126
  end
127
127
 
128
128
  desc 'db:clone SOURCE DEST', 'Clone a database to create a new one'
129
- option :environment
129
+ option :environment, aliases: '--env'
130
130
  define_method 'db:clone' do |source_handle, dest_handle|
131
131
  # TODO: Deprecate + recommend backup
132
132
  source = ensure_database(options.merge(db: source_handle))
@@ -139,7 +139,7 @@ module Aptible
139
139
  '[--container-profile PROFILE] [--iops IOPS] ' \
140
140
  '[--logical --version VERSION] [--key-arn KEY_ARN]',
141
141
  'Create a replica/follower of a database'
142
- option :environment
142
+ option :environment, aliases: '--env'
143
143
  option :container_size, type: :numeric
144
144
  option :size, type: :numeric
145
145
  option :disk_size, type: :numeric
@@ -191,7 +191,7 @@ module Aptible
191
191
 
192
192
  desc 'db:dump HANDLE [pg_dump options]',
193
193
  'Dump a remote database to file'
194
- option :environment
194
+ option :environment, aliases: '--env'
195
195
  define_method 'db:dump' do |handle, *dump_options|
196
196
  database = ensure_database(options.merge(db: handle))
197
197
  with_postgres_tunnel(database) do |url|
@@ -204,7 +204,7 @@ module Aptible
204
204
 
205
205
  desc 'db:execute HANDLE SQL_FILE [--on-error-stop]',
206
206
  'Executes sql against a database'
207
- option :environment
207
+ option :environment, aliases: '--env'
208
208
  option :on_error_stop, type: :boolean
209
209
  define_method 'db:execute' do |handle, sql_path|
210
210
  database = ensure_database(options.merge(db: handle))
@@ -217,7 +217,7 @@ module Aptible
217
217
  end
218
218
 
219
219
  desc 'db:tunnel HANDLE', 'Create a local tunnel to a database'
220
- option :environment
220
+ option :environment, aliases: '--env'
221
221
  option :port, type: :numeric
222
222
  option :type, type: :string
223
223
  define_method 'db:tunnel' do |handle|
@@ -262,7 +262,7 @@ module Aptible
262
262
  end
263
263
 
264
264
  desc 'db:deprovision HANDLE', 'Deprovision a database'
265
- option :environment
265
+ option :environment, aliases: '--env'
266
266
  define_method 'db:deprovision' do |handle|
267
267
  database = ensure_database(options.merge(db: handle))
268
268
  CLI.logger.info "Deprovisioning #{database.handle}..."
@@ -278,7 +278,7 @@ module Aptible
278
278
  end
279
279
 
280
280
  desc 'db:backup HANDLE', 'Backup a database'
281
- option :environment
281
+ option :environment, aliases: '--env'
282
282
  define_method 'db:backup' do |handle|
283
283
  database = ensure_database(options.merge(db: handle))
284
284
  CLI.logger.info "Backing up #{database.handle}..."
@@ -287,7 +287,7 @@ module Aptible
287
287
  end
288
288
 
289
289
  desc 'db:reload HANDLE', 'Reload a database'
290
- option :environment
290
+ option :environment, aliases: '--env'
291
291
  define_method 'db:reload' do |handle|
292
292
  database = ensure_database(options.merge(db: handle))
293
293
  CLI.logger.info "Reloading #{database.handle}..."
@@ -300,7 +300,7 @@ module Aptible
300
300
  '[--container-profile PROFILE] [--iops IOPS] ' \
301
301
  '[--volume-type [gp2, gp3]]',
302
302
  'Restart a database'
303
- option :environment
303
+ option :environment, aliases: '--env'
304
304
  option :container_size, type: :numeric
305
305
  option :container_profile, type: :string,
306
306
  desc: 'Examples: m c r'
@@ -335,7 +335,7 @@ module Aptible
335
335
  desc 'db:modify HANDLE ' \
336
336
  '[--iops IOPS] [--volume-type [gp2, gp3]]',
337
337
  'Modify a database disk'
338
- option :environment
338
+ option :environment, aliases: '--env'
339
339
  option :iops, type: :numeric
340
340
  option :volume_type
341
341
  define_method 'db:modify' do |handle|
@@ -354,7 +354,7 @@ module Aptible
354
354
  end
355
355
 
356
356
  desc 'db:url HANDLE', 'Display a database URL'
357
- option :environment
357
+ option :environment, aliases: '--env'
358
358
  option :type, type: :string
359
359
  define_method 'db:url' do |handle|
360
360
  database = ensure_database(options.merge(db: handle))
@@ -371,7 +371,7 @@ module Aptible
371
371
  ' ENVIRONMENT_HANDLE]', 'Rename a database handle. In order'\
372
372
  ' for the new database handle to appear in log drain and'\
373
373
  ' metric drain destinations, you must reload the database.'
374
- option :environment
374
+ option :environment, aliases: '--env'
375
375
  define_method 'db:rename' do |old_handle, new_handle|
376
376
  env = ensure_environment(options)
377
377
  db = ensure_database(options.merge(db: old_handle))
@@ -8,7 +8,7 @@ module Aptible
8
8
  include Helpers::Token
9
9
 
10
10
  desc 'environment:list', 'List all environments'
11
- option :environment
11
+ option :environment, aliases: '--env'
12
12
  define_method 'environment:list' do
13
13
  Formatter.render(Renderer.current) do |root|
14
14
  root.keyed_list(
@@ -25,7 +25,7 @@ module Aptible
25
25
 
26
26
  desc 'environment:ca_cert',
27
27
  'Retrieve the CA certificate associated with the environment'
28
- option :environment
28
+ option :environment, aliases: '--env'
29
29
  define_method 'environment:ca_cert' do
30
30
  Formatter.render(Renderer.current) do |root|
31
31
  root.grouped_keyed_list(
@@ -19,11 +19,11 @@ module Aptible
19
19
  option :drain_databases, default: true, type: :boolean
20
20
  option :drain_ephemeral_sessions, default: true, type: :boolean
21
21
  option :drain_proxies, default: true, type: :boolean
22
- option :environment
22
+ option :environment, aliases: '--env'
23
23
  end
24
24
 
25
25
  desc 'log_drain:list', 'List all Log Drains'
26
- option :environment
26
+ option :environment, aliases: '--env'
27
27
  define_method 'log_drain:list' do
28
28
  Formatter.render(Renderer.current) do |root|
29
29
  root.grouped_keyed_list(
@@ -137,7 +137,7 @@ module Aptible
137
137
 
138
138
  desc 'log_drain:deprovision HANDLE --environment ENVIRONMENT',
139
139
  'Deprovisions a log drain'
140
- option :environment
140
+ option :environment, aliases: '--env'
141
141
  define_method 'log_drain:deprovision' do |handle|
142
142
  account = ensure_environment(options)
143
143
  drain = ensure_log_drain(account, handle)
@@ -11,7 +11,7 @@ module Aptible
11
11
  desc 'maintenance:apps',
12
12
  'List Apps impacted by maintenance schedules where '\
13
13
  'restarts are required'
14
- option :environment
14
+ option :environment, aliases: '--env'
15
15
  define_method 'maintenance:apps' do
16
16
  found_maintenance = false
17
17
  m = maintenance_apps
@@ -46,7 +46,7 @@ module Aptible
46
46
  desc 'maintenance:dbs',
47
47
  'List Databases impacted by maintenance schedules where '\
48
48
  'restarts are required'
49
- option :environment
49
+ option :environment, aliases: '--env'
50
50
  define_method 'maintenance:dbs' do
51
51
  found_maintenance = false
52
52
  m = maintenance_databases
@@ -18,7 +18,7 @@ module Aptible
18
18
  include Helpers::MetricDrain
19
19
 
20
20
  desc 'metric_drain:list', 'List all Metric Drains'
21
- option :environment
21
+ option :environment, aliases: '--env'
22
22
  define_method 'metric_drain:list' do
23
23
  Formatter.render(Renderer.current) do |root|
24
24
  root.grouped_keyed_list(
@@ -40,7 +40,7 @@ module Aptible
40
40
  '--db DATABASE_HANDLE --environment ENVIRONMENT',
41
41
  'Create an InfluxDB Metric Drain'
42
42
  option :db, type: :string
43
- option :environment
43
+ option :environment, aliases: '--env'
44
44
 
45
45
  define_method 'metric_drain:create:influxdb' do |handle|
46
46
  account = ensure_environment(options)
@@ -66,7 +66,7 @@ module Aptible
66
66
  option :password, type: :string
67
67
  option :url, type: :string
68
68
  option :db, type: :string
69
- option :environment
69
+ option :environment, aliases: '--env'
70
70
  define_method 'metric_drain:create:influxdb:custom' do |handle|
71
71
  account = ensure_environment(options)
72
72
 
@@ -95,7 +95,7 @@ module Aptible
95
95
  option :org, type: :string
96
96
  option :token, type: :string
97
97
  option :url, type: :string
98
- option :environment
98
+ option :environment, aliases: '--env'
99
99
  define_method 'metric_drain:create:influxdb:customv2' do |handle|
100
100
  account = ensure_environment(options)
101
101
 
@@ -121,7 +121,7 @@ module Aptible
121
121
  'Create a Datadog Metric Drain'
122
122
  option :api_key, type: :string
123
123
  option :site, type: :string
124
- option :environment
124
+ option :environment, aliases: '--env'
125
125
  define_method 'metric_drain:create:datadog' do |handle|
126
126
  account = ensure_environment(options)
127
127
 
@@ -150,7 +150,7 @@ module Aptible
150
150
 
151
151
  desc 'metric_drain:deprovision HANDLE --environment ENVIRONMENT',
152
152
  'Deprovisions a Metric Drain'
153
- option :environment
153
+ option :environment, aliases: '--env'
154
154
  define_method 'metric_drain:deprovision' do |handle|
155
155
  account = ensure_environment(options)
156
156
  drain = ensure_metric_drain(account, handle)
@@ -45,10 +45,10 @@ module Aptible
45
45
  service.update!(**updates) if updates.any?
46
46
  end
47
47
 
48
- desc 'services:sizing_policy SERVICE',
48
+ desc 'services:autoscaling_policy SERVICE',
49
49
  'Returns the associated sizing policy, if any'
50
50
  app_options
51
- define_method 'services:sizing_policy' do |service|
51
+ define_method 'services:autoscaling_policy' do |service|
52
52
  service = ensure_service(options, service)
53
53
  policy = service.service_sizing_policy
54
54
 
@@ -66,7 +66,14 @@ module Aptible
66
66
  end
67
67
  end
68
68
 
69
- desc 'services:sizing_policy:set SERVICE '\
69
+ no_commands do
70
+ alias_method 'services:sizing_policy',
71
+ 'services:autoscaling_policy'
72
+ end
73
+
74
+ map 'services:sizing_policy' => 'services:autoscaling_policy'
75
+
76
+ desc 'services:autoscaling_policy:set SERVICE '\
70
77
  '--autoscaling-type (horizontal|vertical) '\
71
78
  '[--metric-lookback-seconds SECONDS] '\
72
79
  '[--percentile PERCENTILE] '\
@@ -179,7 +186,7 @@ module Aptible
179
186
  'the amount of containers to remove when autoscaling (ex:'\
180
187
  ' a value of 2 will go from 4->2->1). Container count '\
181
188
  'will never exceed the configured minimum.'
182
- define_method 'services:sizing_policy:set' do |service|
189
+ define_method 'services:autoscaling_policy:set' do |service|
183
190
  service = ensure_service(options, service)
184
191
  ignored_attrs = %i(autoscaling_type app environment remote)
185
192
  args = options.except(*ignored_attrs)
@@ -192,6 +199,14 @@ module Aptible
192
199
  service.create_service_sizing_policy!(**args)
193
200
  end
194
201
  end
202
+
203
+ no_commands do
204
+ alias_method 'services:sizing_policy:set',
205
+ 'services:autoscaling_policy:set'
206
+ end
207
+
208
+ map 'services:sizing_policy:set' =>
209
+ 'services:autoscaling_policy:set'
195
210
  end
196
211
  end
197
212
  end
@@ -1,5 +1,5 @@
1
1
  module Aptible
2
2
  module CLI
3
- VERSION = '0.23.0'.freeze
3
+ VERSION = '0.24.1'.freeze
4
4
  end
5
5
  end
@@ -93,11 +93,13 @@ describe Aptible::CLI::Agent do
93
93
 
94
94
  s1 = Fabricate(
95
95
  :service,
96
- app: app, process_type: 's1', command: 'true', container_count: 2
96
+ app: app, process_type: 's1', command: 'true', container_count: 2,
97
+ instance_class: 'm5'
97
98
  )
98
99
  s2 = Fabricate(
99
100
  :service,
100
- app: app, process_type: 's2', container_memory_limit_mb: 2048
101
+ app: app, process_type: 's2', container_memory_limit_mb: 2048,
102
+ instance_class: 'r5'
101
103
  )
102
104
 
103
105
  expected_json = [
@@ -118,6 +120,7 @@ describe Aptible::CLI::Agent do
118
120
  'id' => s1.id,
119
121
  'command' => s1.command,
120
122
  'container_count' => s1.container_count,
123
+ 'container_profile' => 'm',
121
124
  'container_size' => s1.container_memory_limit_mb,
122
125
  'created_at' => fmt_time(s1.created_at)
123
126
  },
@@ -126,6 +129,7 @@ describe Aptible::CLI::Agent do
126
129
  'id' => s2.id,
127
130
  'command' => 'CMD',
128
131
  'container_count' => s2.container_count,
132
+ 'container_profile' => 'r',
129
133
  'container_size' => s2.container_memory_limit_mb,
130
134
  'created_at' => fmt_time(s2.created_at)
131
135
  }
@@ -109,6 +109,17 @@ describe Aptible::CLI::Agent do
109
109
  subject.send('config:unset', 'FOO')
110
110
  end
111
111
 
112
+ it 'unsets environment variables even if the user passes a value' do
113
+ expect(app).to receive(:create_operation!)
114
+ .with(type: 'configure', env: { 'FOO' => '' })
115
+ .and_return(operation)
116
+
117
+ expect(subject).to receive(:attach_to_operation_logs)
118
+ .with(operation)
119
+
120
+ subject.send('config:unset', 'FOO=whoops')
121
+ end
122
+
112
123
  it 'rejects environment variables that start with -' do
113
124
  expect { subject.send('config:rm', '-foo') }
114
125
  .to raise_error(/invalid argument/im)
@@ -46,6 +46,14 @@ describe Aptible::CLI::Agent do
46
46
  expect(captured_output_text.split("\n")).to include('Container Count: 3')
47
47
  end
48
48
 
49
+ it 'lists container profile' do
50
+ Fabricate(:service, app: app, instance_class: 'u7')
51
+ subject.send('services')
52
+
53
+ expect(captured_output_text.split("\n"))
54
+ .to include('Container Profile: u')
55
+ end
56
+
49
57
  it 'lists multiple services' do
50
58
  Fabricate(:service, app: app, process_type: 'foo')
51
59
  Fabricate(:service, app: app, process_type: 'bar')
@@ -119,6 +127,19 @@ describe Aptible::CLI::Agent do
119
127
  expect { subject.send('services:sizing_policy', 'foo') }
120
128
  .to raise_error(/does not have a service sizing policy set/)
121
129
  end
130
+
131
+ it 'is aliased to autoscaling_policy' do
132
+ stub_options
133
+ service = Fabricate(:service, app: app, process_type: 'foo')
134
+ sizing_policy = Fabricate(:service_sizing_policy)
135
+ expect(service).to receive(:service_sizing_policy)
136
+ .and_return(sizing_policy)
137
+
138
+ subject.send('services:autoscaling_policy', 'foo')
139
+
140
+ out = captured_output_text
141
+ expect(out).to match(/Autoscaling Type: vertical/i)
142
+ end
122
143
  end
123
144
 
124
145
  describe '#services:sizing_policy:set' do
@@ -161,6 +182,19 @@ describe Aptible::CLI::Agent do
161
182
 
162
183
  subject.send('services:sizing_policy:set', 'foo')
163
184
  end
185
+
186
+ it 'is aliased to autoscaling_policy:set' do
187
+ stub_options(**args)
188
+ service = Fabricate(:service, app: app, process_type: 'foo')
189
+
190
+ api_args = args.except(:autoscaling_type)
191
+ api_args[:autoscaling] = args[:autoscaling_type]
192
+
193
+ expect(service).to receive(:create_service_sizing_policy!)
194
+ .with(**api_args)
195
+
196
+ subject.send('services:autoscaling_policy:set', 'foo')
197
+ end
164
198
  end
165
199
 
166
200
  def stub_options(**opts)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aptible-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.0
4
+ version: 0.24.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Frank Macreery
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-02 00:00:00.000000000 Z
11
+ date: 2024-12-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -472,7 +472,7 @@ homepage: https://github.com/aptible/aptible-cli
472
472
  licenses:
473
473
  - MIT
474
474
  metadata: {}
475
- post_install_message:
475
+ post_install_message:
476
476
  rdoc_options: []
477
477
  require_paths:
478
478
  - lib
@@ -487,8 +487,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
487
487
  - !ruby/object:Gem::Version
488
488
  version: '0'
489
489
  requirements: []
490
- rubygems_version: 3.1.6
491
- signing_key:
490
+ rubygems_version: 3.0.3.1
491
+ signing_key:
492
492
  specification_version: 4
493
493
  summary: Command-line interface for Aptible services
494
494
  test_files: