Tool: create_instance
Create a Memorystore for Valkey instance.
The following sample demonstrate how to use curl to invoke the create_instance MCP tool.
| Curl Request |
|---|
curl --location 'https://memorystore.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "create_instance", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Request message for CreateInstance.
CreateInstanceRequest
| JSON representation |
|---|
{
"parent": string,
"instanceId": string,
"instance": {
object ( |
| Fields | |
|---|---|
parent |
Required. The parent resource where this instance will be created. Format: projects/{project}/locations/{location} |
instanceId |
Required. The ID to use for the instance, which will become the final component of the instance's resource name. This value is subject to the following restrictions:
|
instance |
Required. The instance to create. |
requestId |
Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000). |
Instance
| JSON representation |
|---|
{ "name": string, "createTime": string, "updateTime": string, "labels": { string: string, ... }, "state": enum ( |
| Fields | |
|---|---|
name |
Identifier. Unique name of the instance. Format: projects/{project}/locations/{location}/instances/{instance} |
createTime |
Output only. Creation timestamp of the instance. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. Latest update timestamp of the instance. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
labels |
Optional. Labels to represent user-provided metadata. An object containing a list of |
state |
Output only. Current state of the instance. |
stateInfo |
Output only. Additional information about the state of the instance. |
uid |
Output only. System assigned, unique identifier for the instance. |
authorizationMode |
Optional. Immutable. Authorization mode of the instance. |
transitEncryptionMode |
Optional. Immutable. In-transit encryption mode of the instance. |
shardCount |
Optional. Number of shards for the instance. |
discoveryEndpoints[] |
Output only. Deprecated: The discovery_endpoints parameter is deprecated. As a result, it will not be populated if the connections are created using endpoints parameter. Instead of this parameter, for discovery, use endpoints.connections.pscConnection and endpoints.connections.pscAutoConnection with connectionType CONNECTION_TYPE_DISCOVERY. |
nodeType |
Optional. Machine type for individual nodes of the instance. |
persistenceConfig |
Optional. Persistence configuration of the instance. |
engineVersion |
Optional. Engine version of the instance. |
engineConfigs |
Optional. User-provided engine configurations for the instance. An object containing a list of |
nodeConfig |
Output only. Configuration of individual nodes of the instance. |
zoneDistributionConfig |
Optional. Immutable. Zone distribution configuration of the instance for node allocation. |
pscAutoConnections[] |
Optional. Immutable. Deprecated: Use the endpoints.connections.psc_auto_connection value instead. |
pscAttachmentDetails[] |
Output only. Service attachment details to configure PSC connections. |
endpoints[] |
Optional. Endpoints for the instance. |
mode |
Optional. The mode config for the instance. |
maintenancePolicy |
Optional. The maintenance policy for the instance. If not provided, the maintenance event will be performed based on Memorystore internal rollout schedule. |
maintenanceSchedule |
Output only. Published maintenance schedule. |
crossInstanceReplicationConfig |
Optional. The config for cross instance replication. |
encryptionInfo |
Output only. Encryption information of the data at rest of the cluster. |
automatedBackupConfig |
Optional. The automated backup config for the instance. |
availableMaintenanceVersions[] |
Output only. This field is used to determine the available maintenance versions for the self service update. |
allowFewerZonesDeployment |
Optional. Immutable. Deprecated, do not use. |
migrationConfig |
Output only. Migration config for the instance. |
Union field import_sources. The source to import from. import_sources can be only one of the following: |
|
gcsSource |
Optional. Immutable. Backups that stored in Cloud Storage buckets. The Cloud Storage buckets need to be the same region as the instances. Read permission is required to import from the provided Cloud Storage Objects. |
managedBackupSource |
Optional. Immutable. Backups that generated and managed by memorystore service. |
Union field
|
|
replicaCount |
Optional. Number of replica nodes per shard. If omitted the default is 0 replicas. |
Union field
|
|
deletionProtectionEnabled |
Optional. If set to true deletion of the instance will fail. |
Union field
|
|
simulateMaintenanceEvent |
Optional. Input only. Simulate a maintenance event. |
Union field
|
|
ondemandMaintenance |
Optional. Input only. Ondemand maintenance for the instance. |
Union field
|
|
satisfiesPzs |
Optional. Output only. Reserved for future use. |
Union field
|
|
satisfiesPzi |
Optional. Output only. Reserved for future use. |
Union field
|
|
asyncInstanceEndpointsDeletionEnabled |
Optional. If true, instance endpoints that are created and registered by customers can be deleted asynchronously. That is, such an instance endpoint can be de-registered before the forwarding rules in the instance endpoint are deleted. |
Union field
|
|
kmsKey |
Optional. The KMS key used to encrypt the at-rest data of the cluster. |
Union field
|
|
backupCollection |
Output only. The backup collection full resource name. Example: projects/{project}/locations/{location}/backupCollections/{collection} |
Union field
|
|
maintenanceVersion |
Optional. This field can be used to trigger self service update to indicate the desired maintenance version. The input to this field can be determined by the available_maintenance_versions field. |
Union field
|
|
effectiveMaintenanceVersion |
Output only. This field represents the actual maintenance version of the instance. |
Union field
|
|
serverCaMode |
Optional. Immutable. The Server CA mode for the instance. |
Union field
|
|
serverCaPool |
Optional. Immutable. The customer-managed CA pool for the instance. Only applicable if the Server CA mode is CUSTOMER_MANAGED_CAS_CA. Format: "projects/{project}/locations/{region}/caPools/{ca_pool}". |
Union field
|
|
rotateServerCertificate |
Optional. Input only. Rotate the server certificates. |
Union field
|
|
aclPolicy |
Optional. The ACL policy for the instance. Format: projects/{project}/locations/{location}/aclPolicies/{acl_policy} |
Union field
|
|
aclPolicyInSync |
Output only. Whether the ACL rules applied to the instance are in sync with the latest ACL policy rules. This field is only applicable if the ACL policy is set for the instance. |
GcsBackupSource
| JSON representation |
|---|
{ "uris": [ string ] } |
| Fields | |
|---|---|
uris[] |
Optional. Example: gs://bucket1/object1, gs://bucket2/folder2/object2 |
ManagedBackupSource
| JSON representation |
|---|
{ "backup": string } |
| Fields | |
|---|---|
backup |
Optional. Example: //memorystore.googleapis.com/projects/{project}/locations/{location}/backupCollections/{collection}/backups/{backup} A shorter version (without the prefix) of the backup name is also supported, like projects/{project}/locations/{location}/backupCollections/{collection}/backups/{backup_id} In this case, it assumes the backup is under memorystore.googleapis.com. |
Timestamp
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos |
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
LabelsEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
StateInfo
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field
|
|
updateInfo |
Output only. Describes ongoing update when instance state is UPDATING. |
UpdateInfo
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field
|
|
targetShardCount |
Output only. Target number of shards for the instance. |
Union field
|
|
targetReplicaCount |
Output only. Target number of replica nodes per shard for the instance. |
Union field
|
|
targetEngineVersion |
Output only. Target engine version for the instance. |
Union field
|
|
targetNodeType |
Output only. Target node type for the instance. |
DiscoveryEndpoint
| JSON representation |
|---|
{ "address": string, "port": integer, "network": string } |
| Fields | |
|---|---|
address |
Output only. IP address of the exposed endpoint clients connect to. |
port |
Output only. The port number of the exposed endpoint. |
network |
Output only. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}. |
PersistenceConfig
| JSON representation |
|---|
{ "mode": enum ( |
| Fields | |
|---|---|
mode |
Optional. Current persistence mode. |
rdbConfig |
Optional. RDB configuration. This field will be ignored if mode is not RDB. |
aofConfig |
Optional. AOF configuration. This field will be ignored if mode is not AOF. |
RDBConfig
| JSON representation |
|---|
{
"rdbSnapshotPeriod": enum ( |
| Fields | |
|---|---|
rdbSnapshotPeriod |
Optional. Period between RDB snapshots. |
rdbSnapshotStartTime |
Optional. Time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
AOFConfig
| JSON representation |
|---|
{
"appendFsync": enum ( |
| Fields | |
|---|---|
appendFsync |
Optional. The fsync mode. |
EngineConfigsEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
NodeConfig
| JSON representation |
|---|
{ "sizeGb": number } |
| Fields | |
|---|---|
sizeGb |
Output only. Memory size in GB of the node. |
ZoneDistributionConfig
| JSON representation |
|---|
{
"zone": string,
"mode": enum ( |
| Fields | |
|---|---|
zone |
Optional. Defines zone where all resources will be allocated with SINGLE_ZONE mode. Ignored for MULTI_ZONE mode. |
mode |
Optional. Current zone distribution mode. Defaults to MULTI_ZONE. |
PscAutoConnection
| JSON representation |
|---|
{ "pscConnectionId": string, "ipAddress": string, "forwardingRule": string, "projectId": string, "network": string, "serviceAttachment": string, "pscConnectionStatus": enum ( |
| Fields | |
|---|---|
pscConnectionId |
Output only. The PSC connection id of the forwarding rule connected to the service attachment. |
ipAddress |
Output only. The IP allocated on the consumer network for the PSC forwarding rule. |
forwardingRule |
Output only. The URI of the consumer side forwarding rule. Format: projects/{project}/regions/{region}/forwardingRules/{forwarding_rule} |
projectId |
Required. The consumer project_id where PSC connections are established. This should be the same project_id that the instance is being created in. |
network |
Required. The network where the PSC endpoints are created, in the form of projects/{project_id}/global/networks/{network_id}. |
serviceAttachment |
Output only. The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}. |
pscConnectionStatus |
Output only. The status of the PSC connection: whether a connection exists and ACTIVE or it no longer exists. Please note that this value is updated periodically. Please use Private Service Connect APIs for the latest status. |
connectionType |
Output only. Type of the PSC connection. |
Union field ports. Ports of the exposed endpoint. ports can be only one of the following: |
|
port |
Optional. port will only be set for Primary/Reader or Discovery endpoint. |
PscAttachmentDetail
| JSON representation |
|---|
{
"serviceAttachment": string,
"connectionType": enum ( |
| Fields | |
|---|---|
serviceAttachment |
Output only. Service attachment URI which your self-created PscConnection should use as target. |
connectionType |
Output only. Type of Psc endpoint. |
InstanceEndpoint
| JSON representation |
|---|
{
"connections": [
{
object ( |
| Fields | |
|---|---|
connections[] |
Optional. A group of PSC connections. They are created in the same VPC network, one for each service attachment in the cluster. |
ConnectionDetail
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field connection. A PSC connection to an instance could either be created through Service Connectivity Automation (auto connection) during the cluster creation, or it could be created by customer themeslves (user-created connection). connection can be only one of the following: |
|
pscAutoConnection |
Immutable. Detailed information of a PSC connection that is created through service connectivity automation. |
pscConnection |
Detailed information of a PSC connection that is created by the user. |
PscConnection
| JSON representation |
|---|
{ "pscConnectionId": string, "ipAddress": string, "forwardingRule": string, "projectId": string, "network": string, "serviceAttachment": string, "pscConnectionStatus": enum ( |
| Fields | |
|---|---|
pscConnectionId |
Required. The PSC connection id of the forwarding rule connected to the service attachment. |
ipAddress |
Required. The IP allocated on the consumer network for the PSC forwarding rule. |
forwardingRule |
Required. The URI of the consumer side forwarding rule. Format: projects/{project}/regions/{region}/forwardingRules/{forwarding_rule} |
projectId |
Output only. The consumer project_id where the forwarding rule is created from. |
network |
Required. The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}. |
serviceAttachment |
Required. The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}. |
pscConnectionStatus |
Output only. The status of the PSC connection: whether a connection exists and ACTIVE or it no longer exists. Please note that this value is updated periodically. Please use Private Service Connect APIs for the latest status. |
connectionType |
Output only. Type of the PSC connection. |
Union field ports. Ports of the exposed endpoint. ports can be only one of the following: |
|
port |
Optional. port will only be set for Primary/Reader or Discovery endpoint. |
MaintenancePolicy
| JSON representation |
|---|
{
"createTime": string,
"updateTime": string,
"weeklyMaintenanceWindow": [
{
object ( |
| Fields | |
|---|---|
createTime |
Output only. The time when the policy was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. The time when the policy was updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
weeklyMaintenanceWindow[] |
Optional. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_window is expected to be one. |
WeeklyMaintenanceWindow
| JSON representation |
|---|
{ "day": enum ( |
| Fields | |
|---|---|
day |
Optional. Allows to define schedule that runs specified day of the week. |
startTime |
Optional. Start time of the window in UTC. |
TimeOfDay
| JSON representation |
|---|
{ "hours": integer, "minutes": integer, "seconds": integer, "nanos": integer } |
| Fields | |
|---|---|
hours |
Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time. |
minutes |
Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59. |
seconds |
Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds. |
nanos |
Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999. |
MaintenanceSchedule
| JSON representation |
|---|
{ "startTime": string, "endTime": string } |
| Fields | |
|---|---|
startTime |
Output only. The start time of any upcoming scheduled maintenance for this instance. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
endTime |
Output only. The end time of any upcoming scheduled maintenance for this instance. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
CrossInstanceReplicationConfig
| JSON representation |
|---|
{ "instanceRole": enum ( |
| Fields | |
|---|---|
instanceRole |
Required. The role of the instance in cross instance replication. |
primaryInstance |
Optional. Details of the primary instance that is used as the replication source for this secondary instance. This field is only set for a secondary instance. |
secondaryInstances[] |
Optional. List of secondary instances that are replicating from this primary instance. This field is only set for a primary instance. |
updateTime |
Output only. The last time cross instance replication config was updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
membership |
Output only. An output only view of all the member instances participating in the cross instance replication. This view will be provided by every member instance irrespective of its instance role(primary or secondary). A primary instance can provide information about all the secondary instances replicating from it. However, a secondary instance only knows about the primary instance from which it is replicating. However, for scenarios, where the primary instance is unavailable(e.g. regional outage), a Getinstance request can be sent to any other member instance and this field will list all the member instances participating in cross instance replication. |
RemoteInstance
| JSON representation |
|---|
{ "instance": string, "uid": string } |
| Fields | |
|---|---|
instance |
Optional. The full resource path of the remote instance in the format: projects/ |
uid |
Output only. The unique identifier of the remote instance. |
Membership
| JSON representation |
|---|
{ "primaryInstance": { object ( |
| Fields | |
|---|---|
primaryInstance |
Output only. The primary instance that acts as the source of replication for the secondary instances. |
secondaryInstances[] |
Output only. The list of secondary instances replicating from the primary instance. |
EncryptionInfo
| JSON representation |
|---|
{ "encryptionType": enum ( |
| Fields | |
|---|---|
encryptionType |
Output only. Type of encryption. |
kmsKeyVersions[] |
Output only. KMS key versions that are being used to protect the data at-rest. |
kmsKeyPrimaryState |
Output only. The state of the primary version of the KMS key perceived by the system. This field is not populated in backups. |
lastUpdateTime |
Output only. The most recent time when the encryption info was updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
AutomatedBackupConfig
| JSON representation |
|---|
{ "automatedBackupMode": enum ( |
| Fields | |
|---|---|
automatedBackupMode |
Optional. The automated backup mode. If the mode is disabled, the other fields will be ignored. |
retention |
Optional. How long to keep automated backups before the backups are deleted. The value should be between 1 day and 365 days. If not specified, the default value is 35 days. A duration in seconds with up to nine fractional digits, ending with ' |
Union field schedule. The schedule of automated backups. schedule can be only one of the following: |
|
fixedFrequencySchedule |
Optional. Trigger automated backups at a fixed frequency. |
FixedFrequencySchedule
| JSON representation |
|---|
{
"startTime": {
object ( |
| Fields | |
|---|---|
startTime |
Required. The start time of every automated backup in UTC. It must be set to the start of an hour. This field is required. |
Duration
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years |
nanos |
Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 |
MigrationConfig
| JSON representation |
|---|
{ "state": enum ( |
| Fields | |
|---|---|
state |
Output only. Migration state of the instance. |
forceFinishMigration |
Output only. Represents a boolean flag to force migration finalization without offset catch up validation between source and target before stopping replication. |
Union field source. Details about the migration source. source can be only one of the following: |
|
selfManagedSource |
Output only. Configuration for migrating from a self-managed Valkey/Redis instance |
SelfManagedSource
| JSON representation |
|---|
{ "ipAddress": string, "port": integer, "networkAttachment": string } |
| Fields | |
|---|---|
ipAddress |
Required. The IP address of the source instance. This IP address should be a stable IP address that can be accessed by the Memorystore instance throughout the migration process. |
port |
Required. The port of the source instance. This port should be a stable port that can be accessed by the Memorystore instance throughout the migration process. |
networkAttachment |
Required. The resource name of the Private Service Connect Network Attachment used to establish connectivity to the source instance. This network attachment has the following requirements: 1. It must be in the same project as the Memorystore instance. 2. It must be in the same region as the Memorystore instance. 3. The subnet attached to the network attachment must be in the same VPC network as the source instance nodes. Format: projects/{project}/regions/{region}/networkAttachments/{network_attachment} |
Output Schema
This resource represents a long-running operation that is the result of a network API call.
Operation
| JSON representation |
|---|
{ "name": string, "metadata": { "@type": string, field1: ..., ... }, "done": boolean, // Union field |
| Fields | |
|---|---|
name |
The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the |
metadata |
Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any. An object containing fields of an arbitrary type. An additional field |
done |
If the value is |
Union field result. The operation result, which can be either an error or a valid response. If done == false, neither error nor response is set. If done == true, exactly one of error or response can be set. Some services might not provide the result. result can be only one of the following: |
|
error |
The error result of the operation in case of failure or cancellation. |
response |
The normal, successful response of the operation. If the original method returns no data on success, such as An object containing fields of an arbitrary type. An additional field |
Any
| JSON representation |
|---|
{ "typeUrl": string, "value": string } |
| Fields | |
|---|---|
typeUrl |
Identifies the type of the serialized Protobuf message with a URI reference consisting of a prefix ending in a slash and the fully-qualified type name. Example: type.googleapis.com/google.protobuf.StringValue This string must contain at least one The prefix is arbitrary and Protobuf implementations are expected to simply strip off everything up to and including the last All type URL strings must be legal URI references with the additional restriction (for the text format) that the content of the reference must consist only of alphanumeric characters, percent-encoded escapes, and characters in the following set (not including the outer backticks): In the original design of |
value |
Holds a Protobuf serialization of the type described by type_url. A base64-encoded string. |
Status
| JSON representation |
|---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |
| Fields | |
|---|---|
code |
The status code, which should be an enum value of |
message |
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the |
details[] |
A list of messages that carry the error details. There is a common set of message types for APIs to use. An object containing fields of an arbitrary type. An additional field |
Tool Annotations
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ❌