- release_tracks: [ALPHA, BETA, GA] help_text: brief: | Create a Memorystore Redis instance. description: | Create a new Redis instance. This command can fail for the following reasons: * An instance with the same name already exists. * The active account does not have permission to create instances. examples: | To create a basic tier instance with the name `my-redis-instance` in region `us-central-1` with memory size of 5 GiB, run: $ {command} my-redis-instance --region=us-central1 --size=5 arguments: resource: spec: !REF googlecloudsdk.command_lib.redis.resources:instance help_text: | Arguments and flags that specify the Memorystore Redis instance you want to create. params: - arg_name: zone api_field: instance.locationId help_text: | The zone of the Redis instance. If not provided the service will pick a random zone in the region. For the standard tier, instances will be created across two zones for protection against zonal failures. So if --alternative-zone is also provided, it must be different from --zone. - arg_name: alternative-zone api_field: instance.alternativeLocationId help_text: | A secondary zone for the Redis instance. Only applicable to the standard tier. This protects the instance against zonal failures by provisioning it across two zones. If provided, alternative zone must be a different zone from the one provided through `--zone`. - arg_name: network api_field: instance.authorizedNetwork help_text: | The name of the Google Compute Engine network to which the instance will be connected. If left unspecified, the default network will be used. default: default processor: googlecloudsdk.command_lib.redis.instances_create_util:ParseInstanceNetworkArg - arg_name: tier api_field: instance.tier help_text: | The service tier of the instance. choices: - enum_value: BASIC arg_value: basic help_text: Basic Redis instance with no replication - enum_value: STANDARD_HA arg_value: standard help_text: Standard high-availability Redis instance with replication default: basic - arg_name: connect-mode api_field: instance.connectMode help_text: | Network connection mode used by instances. - arg_name: transit-encryption-mode api_field: instance.transitEncryptionMode help_text: | Transit encryption mode used by the instance. choices: # Enum is mapped to keep TRANSIT-ENCRYPTION-MODE-UNSPECIFIED invisible from users. - arg_value: DISABLED enum_value: DISABLED help_text: Transit encryption is disabled for the instance. - arg_value: SERVER-AUTHENTICATION enum_value: SERVER-AUTHENTICATION help_text: Client to Server traffic encryption enabled with server authentication. - arg_name: display-name api_field: instance.displayName help_text: | A human-readable name for the instance. - api_field: instance.redisConfigs.additionalProperties metavar: KEY=VALUE arg_name: redis-config help_text: | A list of Redis config KEY=VALUE pairs to set on the instance according to http://redis.io/topics/config. Currently, the only supported parameters are: Redis version 3.2 and newer: maxmemory-policy, notify-keyspace-events, timeout, databases. Redis version 4.0 and newer: activedefrag, lfu-decay-time, lfu-log-factor, maxmemory-gb. Redis version 5.0 and newer: stream-node-max-bytes, stream-node-max-entries. type: arg_dict: flatten: true spec: - api_field: key - api_field: value - arg_name: maintenance-window-day api_field: instance.maintenancePolicy.weeklyMaintenanceWindow.day help_text: | Day of week for maintenance window, in UTC time zone. MAINTENANCE_WINDOW_DAY must be one of: SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY. - arg_name: maintenance-window-hour api_field: instance.maintenancePolicy.weeklyMaintenanceWindow.startTime.hours help_text: | Hour of day (0 to 23) for maintenance window, in UTC time zone. - arg_name: persistence-mode api_field: instance.persistenceConfig.persistenceMode help_text: | Operation mode for automated persistence. choices: - enum_value: DISABLED arg_value: disabled help_text: RDB mode is disabled - enum_value: RDB arg_value: RDB help_text: Automatic RDB persistence - arg_name: rdb-snapshot-period api_field: instance.persistenceConfig.rdbSnapshotPeriod help_text: | Attempted period between RDB snapshots. choices: - enum_value: ONE_HOUR arg_value: 1h help_text: 1 hour - enum_value: SIX_HOURS arg_value: 6h help_text: 6 hours - enum_value: TWELVE_HOURS arg_value: 12h help_text: 12 hours - enum_value: TWENTY_FOUR_HOURS arg_value: 24h help_text: 24 hours - arg_name: rdb-snapshot-start-time api_field: instance.persistenceConfig.rdbSnapshotStartTime help_text: | Date and time of the first snapshot in the ISO 1801 format, and alignment time for future snapshots. For example, 2022-11-02T03:00:00Z. - arg_name: read-replicas-mode api_field: instance.readReplicasMode help_text: | Read replicas mode used by the instance. Only works against standard tier instances with 5GB and above provisioned capacity. choices: # Enum is mapped to keep READ-REPLICAS-MODE-UNSPECIFIED invisible from users. - enum_value: READ-REPLICAS-DISABLED arg_value: READ-REPLICAS-DISABLED help_text: | Read replica is disabled for the instance. Read endpoint will not be provided and the instance cannot scale up or down the number of replicas. - enum_value: READ-REPLICAS-ENABLED arg_value: READ-REPLICAS-ENABLED help_text: | Read replica is enabled for the instance. Read endpoint will be provided and the instance can scale up and down the number of replicas. - arg_name: replica-count api_field: instance.replicaCount type: long help_text: | The replica count of the instance. - arg_name: redis-version api_field: instance.redisVersion metavar: VERSION help_text: The version of Redis software. choices: - enum_value: REDIS_3_2 arg_value: redis_3_2 help_text: Redis 3.2 compatibility - enum_value: REDIS_4_0 arg_value: redis_4_0 help_text: Redis 4.0 compatibility - enum_value: REDIS_5_0 arg_value: redis_5_0 help_text: Redis 5.0 compatibility - enum_value: REDIS_6_X arg_value: redis_6_x help_text: Redis 6.x compatibility - enum_value: REDIS_7_0 arg_value: redis_7_0 help_text: Redis 7.0 compatibility - enum_value: REDIS_7_2 arg_value: redis_7_2 help_text: Redis 7.2 compatibility - arg_name: reserved-ip-range api_field: instance.reservedIpRange help_text: | For DIRECT_PEERING mode, the CIDR range of internal addresses that are reserved for this instance. Range must be unique and non-overlapping with existing subnets in an authorized network. For PRIVATE_SERVICE_ACCESS mode, the name of an IP address range allocated for the private service access connection. If not provided, the service will choose an unused /29 block, for example, 10.0.0.0/29 or 192.168.0.0/29. If READ_REPLICAS_ENABLED is used for the --read-replicas-mode flag, then the block size required for this flag is /28. - arg_name: customer-managed-key api_field: instance.customerManagedKey help_text: | The KMS key reference that you want to use to encrypt the data at rest for this Redis instance. If this is provided, CMEK is enabled. - arg_name: size api_field: instance.memorySizeGb help_text: | The memory size of the instance in GiB. If not provided, size of 1 GiB will be used. type: long default: 1 - arg_name: enable-auth api_field: instance.authEnabled type: bool action: store_true processor: googlecloudsdk.command_lib.redis.util:WarnOnAuthEnabled help_text: | Enables Redis AUTH for the instance. If omitted AUTH is disabled. - arg_name: tags release_tracks: [GA] api_field: instance.tags.additionalProperties # TODO(b/348137430): Remove hidden as part of GA launch. hidden: true metavar: KEY=VALUE help_text: | List of tag KEY=VALUE pairs to add. type: arg_dict: flatten: true spec: - api_field: key - api_field: value labels: api_field: instance.labels async: collection: redis.projects.locations.operations request: ALPHA: api_version: v1alpha1 modify_request_hooks: - googlecloudsdk.command_lib.redis.instances_create_util:AddDefaultReplicaCount BETA: api_version: v1beta1 modify_request_hooks: - googlecloudsdk.command_lib.redis.instances_create_util:AddDefaultReplicaCount GA: api_version: v1 modify_request_hooks: - googlecloudsdk.command_lib.redis.instances_create_util:AddDefaultReplicaCount collection: redis.projects.locations.instances