{
  "name": "rediscloud",
  "displayName": "Redis Cloud",
  "version": "1.3.5",
  "description": "A Pulumi package for creating and managing rediscloud cloud resources.",
  "keywords": [
    "pulumi",
    "rediscloud",
    "category/cloud"
  ],
  "homepage": "https://www.pulumi.com",
  "license": "Apache-2.0",
  "attribution": "This Pulumi package is based on the [`rediscloud` Terraform Provider](https://github.com/RedisLabs/terraform-provider-rediscloud).",
  "repository": "https://github.com/RedisLabs/pulumi-rediscloud",
  "logoUrl": "https://avatars.githubusercontent.com/u/1991868?s=200&v=4",
  "pluginDownloadURL": "github://api.github.com/RedisLabs/pulumi-rediscloud",
  "publisher": "RedisLabs",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "packageReferences": {
        "Pulumi": "3.*"
      },
      "compatibility": "tfbridge20",
      "rootNamespace": "RedisLabs"
    },
    "go": {
      "importBasePath": "github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud",
      "generateResourceContainerTypes": true,
      "generateExtraInputTypes": true
    },
    "java": {
      "basePackage": "com.redislabs",
      "buildFiles": "",
      "gradleNexusPublishPluginVersion": "",
      "gradleTest": ""
    },
    "nodejs": {
      "packageName": "@rediscloud/pulumi-rediscloud",
      "packageDescription": "A Pulumi package for creating and managing rediscloud cloud resources.",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/RedisLabs/terraform-provider-rediscloud)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-rediscloud` repo](https://github.com/RedisLabs/pulumi-rediscloud/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-rediscloud` repo](https://github.com/RedisLabs/terraform-provider-rediscloud/issues).",
      "dependencies": {
        "@pulumi/pulumi": "^3.0.0"
      },
      "devDependencies": {
        "@types/mime": "^2.0.0",
        "@types/node": "^10.0.0"
      },
      "compatibility": "tfbridge20",
      "disableUnionOutputTypes": true
    },
    "python": {
      "packageName": "pulumi_rediscloud",
      "requires": {
        "pulumi": ">=3.0.0,<4.0.0"
      },
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/RedisLabs/terraform-provider-rediscloud)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-rediscloud` repo](https://github.com/RedisLabs/pulumi-rediscloud/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-rediscloud` repo](https://github.com/RedisLabs/terraform-provider-rediscloud/issues).",
      "compatibility": "tfbridge20",
      "pyproject": {}
    }
  },
  "config": {
    "variables": {
      "apiKey": {
        "type": "string",
        "description": "This is the Redis Cloud API key. It must be provided but can also be set by the `REDISCLOUD_ACCESS_KEY` environment\nvariable.\n",
        "defaultInfo": {
          "environment": [
            "REDISCLOUD_API_KEY"
          ]
        },
        "secret": true
      },
      "secretKey": {
        "type": "string",
        "description": "This is the Redis Cloud API secret key. It must be provided but can also be set by the `REDISCLOUD_SECRET_KEY`\nenvironment variable.\n",
        "defaultInfo": {
          "environment": [
            "REDISCLOUD_SECRET_KEY"
          ]
        },
        "secret": true
      },
      "url": {
        "type": "string",
        "description": "This is the URL of Redis Cloud and will default to `https://api.redislabs.com/v1`. This can also be set by the\n`REDISCLOUD_URL` environment variable.\n"
      }
    }
  },
  "types": {
    "rediscloud:index/AclRoleRule:AclRoleRule": {
      "properties": {
        "databases": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FAclRoleRuleDatabase:AclRoleRuleDatabase"
          },
          "description": "a set of database association objects, documented below.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the Rule.\n"
        }
      },
      "type": "object",
      "required": [
        "databases",
        "name"
      ]
    },
    "rediscloud:index/AclRoleRuleDatabase:AclRoleRuleDatabase": {
      "properties": {
        "database": {
          "type": "integer",
          "description": "ID of the database to which the Rule should apply.\n"
        },
        "regions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "For databases in Active/Active subscriptions only, the regions to which the Rule should apply.\n"
        },
        "subscription": {
          "type": "integer",
          "description": "ID of the subscription containing the database.\n"
        }
      },
      "type": "object",
      "required": [
        "database",
        "subscription"
      ]
    },
    "rediscloud:index/ActiveActiveSubscriptionCreationPlan:ActiveActiveSubscriptionCreationPlan": {
      "properties": {
        "memoryLimitInGb": {
          "type": "number",
          "description": "Maximum memory usage that will be used for your largest planned database, including replication and other overhead\n"
        },
        "quantity": {
          "type": "integer",
          "description": "The planned number of databases in the subscription.\n"
        },
        "regions": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FActiveActiveSubscriptionCreationPlanRegion:ActiveActiveSubscriptionCreationPlanRegion"
          }
        }
      },
      "type": "object",
      "required": [
        "memoryLimitInGb",
        "quantity",
        "regions"
      ]
    },
    "rediscloud:index/ActiveActiveSubscriptionCreationPlanRegion:ActiveActiveSubscriptionCreationPlanRegion": {
      "properties": {
        "networkingDeploymentCidr": {
          "type": "string",
          "description": "Deployment CIDR mask. The total number of bits must be 24 (x.x.x.x/24)\n"
        },
        "readOperationsPerSecond": {
          "type": "integer",
          "description": "Throughput measurement for an active-active subscription\n\n> **Note:** If changes are made to attributes in the subscription which require the subscription to be recreated (such as `cloud_provider` or `payment_method`), the creation_plan will need to be defined in order to change these attributes. This is because the creation_plan is always required when a subscription is created.\n"
        },
        "region": {
          "type": "string",
          "description": "Deployment region as defined by cloud provider\n"
        },
        "writeOperationsPerSecond": {
          "type": "integer",
          "description": "Throughput measurement for an active-active subscription\n"
        }
      },
      "type": "object",
      "required": [
        "networkingDeploymentCidr",
        "readOperationsPerSecond",
        "region",
        "writeOperationsPerSecond"
      ]
    },
    "rediscloud:index/ActiveActiveSubscriptionDatabaseGlobalAlert:ActiveActiveSubscriptionDatabaseGlobalAlert": {
      "properties": {
        "name": {
          "type": "string",
          "description": "A meaningful name to identify the database. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "value": {
          "type": "integer",
          "description": "Alert value\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "value"
      ]
    },
    "rediscloud:index/ActiveActiveSubscriptionDatabaseOverrideRegion:ActiveActiveSubscriptionDatabaseOverrideRegion": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Region name.\n"
        },
        "overrideGlobalAlerts": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FActiveActiveSubscriptionDatabaseOverrideRegionOverrideGlobalAlert:ActiveActiveSubscriptionDatabaseOverrideRegionOverrideGlobalAlert"
          },
          "description": "A block defining Redis regional instance of an Active-Active database alert, documented below, can be specified multiple times\n"
        },
        "overrideGlobalDataPersistence": {
          "type": "string",
          "description": "Regional instance of an Active-Active database data persistence rate (in persistent storage)\n"
        },
        "overrideGlobalPassword": {
          "type": "string",
          "description": "If specified, this regional instance of an Active-Active database password will be used to access the database\n",
          "secret": true
        },
        "overrideGlobalSourceIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of regional instance of an Active-Active database source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'] )\n"
        },
        "remoteBackup": {
          "$ref": "#/types/rediscloud:index%2FActiveActiveSubscriptionDatabaseOverrideRegionRemoteBackup:ActiveActiveSubscriptionDatabaseOverrideRegionRemoteBackup",
          "description": "Specifies the backup options for the database in this region, documented below\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "rediscloud:index/ActiveActiveSubscriptionDatabaseOverrideRegionOverrideGlobalAlert:ActiveActiveSubscriptionDatabaseOverrideRegionOverrideGlobalAlert": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Alert name\n"
        },
        "value": {
          "type": "integer",
          "description": "Alert value\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "value"
      ]
    },
    "rediscloud:index/ActiveActiveSubscriptionDatabaseOverrideRegionRemoteBackup:ActiveActiveSubscriptionDatabaseOverrideRegionRemoteBackup": {
      "properties": {
        "interval": {
          "type": "string",
          "description": "Defines the interval between backups. Should be in the following format 'every-x-hours'. x is one of [24,12,6,4,2,1]. For example: 'every-4-hours'\n"
        },
        "storagePath": {
          "type": "string",
          "description": "Defines a URI representing the backup storage location\n"
        },
        "storageType": {
          "type": "string",
          "description": "Defines the provider of the storage location\n"
        },
        "timeUtc": {
          "type": "string",
          "description": "Defines the hour automatic backups are made - only applicable when the interval is `every-12-hours` or `every-24-hours`. For example: '14:00'\n"
        }
      },
      "type": "object",
      "required": [
        "interval",
        "storagePath",
        "storageType"
      ]
    },
    "rediscloud:index/ActiveActiveSubscriptionRegionsRegion:ActiveActiveSubscriptionRegionsRegion": {
      "properties": {
        "databases": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FActiveActiveSubscriptionRegionsRegionDatabase:ActiveActiveSubscriptionRegionsRegionDatabase"
          },
          "description": "A block defining the write and read operations in the region, per database, documented below\n"
        },
        "networkingDeploymentCidr": {
          "type": "string",
          "description": "Deployment CIDR mask. The total number of bits must be 24 (x.x.x.x/24)\n"
        },
        "recreateRegion": {
          "type": "boolean",
          "description": "Protection flag, needs to be set if a region has to be re-created. A region will need to be re-created in the case of a change on the `networking_deployment_cidr` field. During re-create, the region will be deleted (so the `delete_regions` flag also needs to be set) and then created again. Default: 'false'\n"
        },
        "region": {
          "type": "string",
          "description": "Region name\n"
        },
        "regionId": {
          "type": "integer",
          "description": "The ID of the region, as created by the API\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Identifier of the VPC to be peered, set by the API\n"
        }
      },
      "type": "object",
      "required": [
        "databases",
        "networkingDeploymentCidr",
        "region"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "databases",
            "networkingDeploymentCidr",
            "region",
            "regionId",
            "vpcId"
          ]
        }
      }
    },
    "rediscloud:index/ActiveActiveSubscriptionRegionsRegionDatabase:ActiveActiveSubscriptionRegionsRegionDatabase": {
      "properties": {
        "databaseId": {
          "type": "integer",
          "description": "Database ID belonging to the subscription\n"
        },
        "databaseName": {
          "type": "string",
          "description": "Database name belonging to the subscription\n"
        },
        "localReadOperationsPerSecond": {
          "type": "integer",
          "description": "Local read operations per second for this active-active region\n"
        },
        "localWriteOperationsPerSecond": {
          "type": "integer",
          "description": "Local write operations per second for this active-active region\n"
        }
      },
      "type": "object",
      "required": [
        "databaseId",
        "databaseName",
        "localReadOperationsPerSecond",
        "localWriteOperationsPerSecond"
      ]
    },
    "rediscloud:index/SubscriptionAllowlist:SubscriptionAllowlist": {
      "properties": {
        "cidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of CIDR ranges that are allowed to access the databases associated with this subscription\n\n> **Note:** `allowlist` is only available when you run on your own cloud account, and not one that Redis provided (i.e `cloud_account_id` != 1)\n"
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of security groups that are allowed to access the databases associated with this subscription\n"
        }
      },
      "type": "object",
      "required": [
        "securityGroupIds"
      ]
    },
    "rediscloud:index/SubscriptionCloudProvider:SubscriptionCloudProvider": {
      "properties": {
        "cloudAccountId": {
          "type": "string",
          "description": "Cloud account identifier. Default: Redis Labs internal cloud account. **Modifying this attribute will force creation of a new resource.**\n(using Cloud Account ID = 1 implies using Redis Labs internal cloud account). Note that a GCP subscription can be created\nonly with Redis Labs internal cloud account\n",
          "willReplaceOnChanges": true
        },
        "provider": {
          "type": "string",
          "description": "The cloud provider to use with the subscription, (either `AWS` or `GCP`). Default: ‘AWS’. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "regions": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FSubscriptionCloudProviderRegion:SubscriptionCloudProviderRegion"
          },
          "description": "A region object, documented below. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        }
      },
      "type": "object",
      "required": [
        "regions"
      ]
    },
    "rediscloud:index/SubscriptionCloudProviderRegion:SubscriptionCloudProviderRegion": {
      "properties": {
        "multipleAvailabilityZones": {
          "type": "boolean",
          "description": "Support deployment on multiple availability zones within the selected region. Default: ‘false’. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "networkingDeploymentCidr": {
          "type": "string",
          "description": "Deployment CIDR mask. The total number of bits must be 24 (x.x.x.x/24). **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "networkingVpcId": {
          "type": "string",
          "description": "Either an existing VPC Id (already exists in the specific region) or create a new VPC\n(if no VPC is specified). VPC Identifier must be in a valid format (for example: ‘vpc-0125be68a4986384ad’) and existing\nwithin the hosting account. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "networks": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FSubscriptionCloudProviderRegionNetwork:SubscriptionCloudProviderRegionNetwork"
          },
          "description": "List of generated network configuration\n"
        },
        "preferredAvailabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "willReplaceOnChanges": true
        },
        "region": {
          "type": "string",
          "description": "Deployment region as defined by cloud provider. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        }
      },
      "type": "object",
      "required": [
        "networkingDeploymentCidr",
        "region"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "networkingDeploymentCidr",
            "networks",
            "preferredAvailabilityZones",
            "region"
          ]
        }
      }
    },
    "rediscloud:index/SubscriptionCloudProviderRegionNetwork:SubscriptionCloudProviderRegionNetwork": {
      "properties": {
        "networkingDeploymentCidr": {
          "type": "string",
          "description": "Deployment CIDR mask. The total number of bits must be 24 (x.x.x.x/24). **Modifying this attribute will force creation of a new resource.**\n"
        },
        "networkingSubnetId": {
          "type": "string",
          "description": "The subnet that the subscription deploys into\n"
        },
        "networkingVpcId": {
          "type": "string",
          "description": "Either an existing VPC Id (already exists in the specific region) or create a new VPC\n(if no VPC is specified). VPC Identifier must be in a valid format (for example: ‘vpc-0125be68a4986384ad’) and existing\nwithin the hosting account. **Modifying this attribute will force creation of a new resource.**\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "networkingDeploymentCidr",
            "networkingSubnetId",
            "networkingVpcId"
          ]
        }
      }
    },
    "rediscloud:index/SubscriptionCreationPlan:SubscriptionCreationPlan": {
      "properties": {
        "averageItemSizeInBytes": {
          "type": "integer",
          "description": "Relevant only to ram-and-flash clusters\nEstimated average size (measured in bytes) of the items stored in the database. The value needs to\nbe the maximum average item size defined in one of your databases.  Default: 1000\n\n~>**Note:** If the number of modules exceeds the `quantity` then additional creation-plan databases will be created with the modules defined in the `modules` block.\n\n> **Note:** If changes are made to attributes in the subscription which require the subscription to be recreated (such as `memory_storage`, `cloud_provider` or `payment_method`), the creation_plan will need to be defined in order to change these attributes. This is because the creation_plan is always required when a subscription is created.\n"
        },
        "memoryLimitInGb": {
          "type": "number",
          "description": "Maximum memory usage that will be used for your largest planned database.\n"
        },
        "modules": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "a list of modules that will be used by the databases in this subscription. Not currently compatible with ‘ram-and-flash’ memory storage.\nExample: `modules = [\"RedisJSON\", RedisBloom\"]`\n"
        },
        "quantity": {
          "type": "integer",
          "description": "The planned number of databases in the subscription\n"
        },
        "replication": {
          "type": "boolean",
          "description": "Databases replication. Default: ‘true’\n"
        },
        "supportOssClusterApi": {
          "type": "boolean",
          "description": "Support Redis open-source (OSS) Cluster API. Default: ‘false’\n"
        },
        "throughputMeasurementBy": {
          "type": "string",
          "description": "Throughput measurement method that will be used by your databases, (either ‘number-of-shards’ or ‘operations-per-second’)\n"
        },
        "throughputMeasurementValue": {
          "type": "integer",
          "description": "Throughput value that will be used by your databases (as applies to selected measurement method). The value needs to be the maximum throughput measurement value defined in one of your databases\n"
        }
      },
      "type": "object",
      "required": [
        "memoryLimitInGb",
        "quantity",
        "replication",
        "throughputMeasurementBy",
        "throughputMeasurementValue"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "averageItemSizeInBytes",
            "memoryLimitInGb",
            "modules",
            "quantity",
            "replication",
            "throughputMeasurementBy",
            "throughputMeasurementValue"
          ]
        }
      }
    },
    "rediscloud:index/SubscriptionDatabaseAlert:SubscriptionDatabaseAlert": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Alert name. (either: 'dataset-size', 'datasets-size', 'throughput-higher-than', 'throughput-lower-than', 'latency', 'syncsource-error', 'syncsource-lag' or 'connections-limit')\n"
        },
        "value": {
          "type": "integer",
          "description": "Alert value\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "value"
      ]
    },
    "rediscloud:index/SubscriptionDatabaseModule:SubscriptionDatabaseModule": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the Redis database module to enable. **Modifying this attribute will force creation of a new resource.**\n\nExample:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nconst modules = [\n    {\n        name: \"RedisJSON\",\n    },\n    {\n        name: \"RedisBloom\",\n    },\n];\n```\n```python\nimport pulumi\n\nmodules = [\n    {\n        \"name\": \"RedisJSON\",\n    },\n    {\n        \"name\": \"RedisBloom\",\n    },\n]\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\n\nreturn await Deployment.RunAsync(() => \n{\n    var modules = new[]\n    {\n        \n        {\n            { \"name\", \"RedisJSON\" },\n        },\n        \n        {\n            { \"name\", \"RedisBloom\" },\n        },\n    };\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_ := []map[string]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"name\": \"RedisJSON\",\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"name\": \"RedisBloom\",\n\t\t\t},\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var modules =         \n            %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),\n            %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  modules:\n    - name: RedisJSON\n    - name: RedisBloom\n```\n",
          "willReplaceOnChanges": true
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "rediscloud:index/SubscriptionDatabaseRemoteBackup:SubscriptionDatabaseRemoteBackup": {
      "properties": {
        "interval": {
          "type": "string",
          "description": "Defines the interval between backups. Should be in the following format 'every-x-hours'. x is one of [24,12,6,4,2,1]. For example: 'every-4-hours'\n"
        },
        "storagePath": {
          "type": "string",
          "description": "Defines a URI representing the backup storage location\n"
        },
        "storageType": {
          "type": "string",
          "description": "Defines the provider of the storage location\n"
        },
        "timeUtc": {
          "type": "string",
          "description": "Defines the hour automatic backups are made - only applicable when the interval is `every-12-hours` or `every-24-hours`. For example: '14:00'\n"
        }
      },
      "type": "object",
      "required": [
        "interval",
        "storagePath",
        "storageType"
      ]
    },
    "rediscloud:index/getAclRoleRule:getAclRoleRule": {
      "properties": {
        "databases": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FgetAclRoleRuleDatabase:getAclRoleRuleDatabase"
          },
          "description": "ID of the database to which the Rule should apply.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the Role to filter returned subscriptions\n"
        }
      },
      "type": "object",
      "required": [
        "databases",
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "rediscloud:index/getAclRoleRuleDatabase:getAclRoleRuleDatabase": {
      "properties": {
        "database": {
          "type": "integer",
          "description": "ID of the database to which the Rule should apply.\n"
        },
        "regions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The regions to which the Rule should apply, if appropriate to the database.\n"
        },
        "subscription": {
          "type": "integer",
          "description": "ID of the subscription containing the database.\n"
        }
      },
      "type": "object",
      "required": [
        "database",
        "regions",
        "subscription"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "rediscloud:index/getDataPersistenceDataPersistence:getDataPersistenceDataPersistence": {
      "properties": {
        "description": {
          "type": "string",
          "description": "A meaningful description of the data persistence option.\n"
        },
        "name": {
          "type": "string",
          "description": "The identifier of the data persistence option.\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "rediscloud:index/getDatabaseAlert:getDatabaseAlert": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the database to filter returned databases\n"
        },
        "value": {
          "type": "integer",
          "description": "The alert value\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "value"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "rediscloud:index/getDatabaseModule:getDatabaseModule": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the database to filter returned databases\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "rediscloud:index/getDatabaseModulesModule:getDatabaseModulesModule": {
      "properties": {
        "description": {
          "type": "string",
          "description": "A meaningful description of the database module\n"
        },
        "name": {
          "type": "string",
          "description": "The identifier assigned by the database module\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "rediscloud:index/getRegionsRegion:getRegionsRegion": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The identifier assigned by the cloud provider, (for example `eu-west-1` for `AWS`)\n"
        },
        "providerName": {
          "type": "string",
          "description": "The name of the cloud provider to filter returned regions, (accepted values are `AWS` or `GCP`).\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "providerName"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "rediscloud:index/getSubscriptionCloudProvider:getSubscriptionCloudProvider": {
      "properties": {
        "cloudAccountId": {
          "type": "string",
          "description": "Cloud account identifier, (A Cloud Account Id = 1 implies using Redis Labs internal cloud account)\n"
        },
        "provider": {
          "type": "string",
          "description": "The cloud provider to use with the subscription, (either `AWS` or `GCP`)\n"
        },
        "regions": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FgetSubscriptionCloudProviderRegion:getSubscriptionCloudProviderRegion"
          },
          "description": "Deployment region as defined by cloud provider\n"
        }
      },
      "type": "object",
      "required": [
        "cloudAccountId",
        "provider",
        "regions"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "rediscloud:index/getSubscriptionCloudProviderRegion:getSubscriptionCloudProviderRegion": {
      "properties": {
        "multipleAvailabilityZones": {
          "type": "boolean",
          "description": "Support deployment on multiple availability zones within the selected region\n"
        },
        "networkingVpcId": {
          "type": "string",
          "description": "VPC id for the generated network\n"
        },
        "networks": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FgetSubscriptionCloudProviderRegionNetwork:getSubscriptionCloudProviderRegionNetwork"
          },
          "description": "List of generated network configuration\n"
        },
        "preferredAvailabilityZones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of availability zones used\n"
        },
        "region": {
          "type": "string",
          "description": "Deployment region as defined by cloud provider\n"
        }
      },
      "type": "object",
      "required": [
        "multipleAvailabilityZones",
        "networkingVpcId",
        "networks",
        "preferredAvailabilityZones",
        "region"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "rediscloud:index/getSubscriptionCloudProviderRegionNetwork:getSubscriptionCloudProviderRegionNetwork": {
      "properties": {
        "networkingDeploymentCidr": {
          "type": "string",
          "description": "Deployment CIDR mask for the generated\n"
        },
        "networkingSubnetId": {
          "type": "string",
          "description": "The subnet that the subscription deploys into\n"
        },
        "networkingVpcId": {
          "type": "string",
          "description": "VPC id for the generated network\n"
        }
      },
      "type": "object",
      "required": [
        "networkingDeploymentCidr",
        "networkingSubnetId",
        "networkingVpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "rediscloud:index/getSubscriptionPeeringsPeering:getSubscriptionPeeringsPeering": {
      "properties": {
        "awsAccountId": {
          "type": "string",
          "description": "AWS account id that the VPC to be peered lives in\n"
        },
        "awsPeeringId": {
          "type": "string",
          "description": "Identifier of the AWS cloud peering\n"
        },
        "gcpNetworkName": {
          "type": "string",
          "description": "The name of the network to be peered\n"
        },
        "gcpPeeringId": {
          "type": "string",
          "description": "Identifier of the cloud peering\n"
        },
        "gcpProjectId": {
          "type": "string",
          "description": "GCP project ID that the VPC to be peered lives in\n"
        },
        "gcpRedisNetworkName": {
          "type": "string",
          "description": "The name of the Redis Enterprise Cloud network to be peered\n"
        },
        "gcpRedisProjectId": {
          "type": "string",
          "description": "Identifier of the Redis Enterprise Cloud GCP project to be peered\n"
        },
        "peeringId": {
          "type": "integer",
          "description": "ID of the subscription peering\n"
        },
        "providerName": {
          "type": "string",
          "description": "The name of the cloud provider. (either `AWS` or `GCP`)\n"
        },
        "region": {
          "type": "string",
          "description": "AWS Region that the VPC to be peered lives in\n"
        },
        "status": {
          "type": "string",
          "description": "Current status of the peering - `initiating-request`, `pending-acceptance`, `active`, `inactive` or `failed`.\n"
        },
        "vpcCidr": {
          "type": "string",
          "description": "CIDR range of the VPC to be peered\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Identifier of the VPC to be peered\n"
        }
      },
      "type": "object",
      "required": [
        "awsAccountId",
        "awsPeeringId",
        "gcpNetworkName",
        "gcpPeeringId",
        "gcpProjectId",
        "gcpRedisNetworkName",
        "gcpRedisProjectId",
        "peeringId",
        "providerName",
        "region",
        "status",
        "vpcCidr",
        "vpcId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    }
  },
  "provider": {
    "description": "The provider type for the rediscloud package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n",
    "properties": {
      "apiKey": {
        "type": "string",
        "description": "This is the Redis Cloud API key. It must be provided but can also be set by the `REDISCLOUD_ACCESS_KEY` environment\nvariable.\n",
        "secret": true
      },
      "secretKey": {
        "type": "string",
        "description": "This is the Redis Cloud API secret key. It must be provided but can also be set by the `REDISCLOUD_SECRET_KEY`\nenvironment variable.\n",
        "secret": true
      },
      "url": {
        "type": "string",
        "description": "This is the URL of Redis Cloud and will default to `https://api.redislabs.com/v1`. This can also be set by the\n`REDISCLOUD_URL` environment variable.\n"
      }
    },
    "type": "object",
    "inputProperties": {
      "apiKey": {
        "type": "string",
        "description": "This is the Redis Cloud API key. It must be provided but can also be set by the `REDISCLOUD_ACCESS_KEY` environment\nvariable.\n",
        "defaultInfo": {
          "environment": [
            "REDISCLOUD_API_KEY"
          ]
        },
        "secret": true
      },
      "secretKey": {
        "type": "string",
        "description": "This is the Redis Cloud API secret key. It must be provided but can also be set by the `REDISCLOUD_SECRET_KEY`\nenvironment variable.\n",
        "defaultInfo": {
          "environment": [
            "REDISCLOUD_SECRET_KEY"
          ]
        },
        "secret": true
      },
      "url": {
        "type": "string",
        "description": "This is the URL of Redis Cloud and will default to `https://api.redislabs.com/v1`. This can also be set by the\n`REDISCLOUD_URL` environment variable.\n"
      }
    }
  },
  "resources": {
    "rediscloud:index/aclRole:AclRole": {
      "description": "Creates a Role in your Redis Enterprise Cloud Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@rediscloud/pulumi-rediscloud\";\n\nconst rule_resource = new rediscloud.AclRule(\"rule-resource\", {rule: \"+@read ~cache:*\"});\nconst role_resource = new rediscloud.AclRole(\"role-resource\", {rules: [{\n    name: rule_resource.name,\n    databases: [{\n        subscription: rediscloud_subscription[\"subscription-resource\"].id,\n        database: rediscloud_subscription_database[\"database-resource\"].db_id,\n    }],\n}]});\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nrule_resource = rediscloud.AclRule(\"rule-resource\", rule=\"+@read ~cache:*\")\nrole_resource = rediscloud.AclRole(\"role-resource\", rules=[rediscloud.AclRoleRuleArgs(\n    name=rule_resource.name,\n    databases=[rediscloud.AclRoleRuleDatabaseArgs(\n        subscription=rediscloud_subscription[\"subscription-resource\"][\"id\"],\n        database=rediscloud_subscription_database[\"database-resource\"][\"db_id\"],\n    )],\n)])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = RedisLabs.Rediscloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var rule_resource = new Rediscloud.AclRule(\"rule-resource\", new()\n    {\n        Rule = \"+@read ~cache:*\",\n    });\n\n    var role_resource = new Rediscloud.AclRole(\"role-resource\", new()\n    {\n        Rules = new[]\n        {\n            new Rediscloud.Inputs.AclRoleRuleArgs\n            {\n                Name = rule_resource.Name,\n                Databases = new[]\n                {\n                    new Rediscloud.Inputs.AclRoleRuleDatabaseArgs\n                    {\n                        Subscription = rediscloud_subscription.Subscription_resource.Id,\n                        Database = rediscloud_subscription_database.Database_resource.Db_id,\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rediscloud.NewAclRule(ctx, \"rule-resource\", &rediscloud.AclRuleArgs{\n\t\t\tRule: pulumi.String(\"+@read ~cache:*\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rediscloud.NewAclRole(ctx, \"role-resource\", &rediscloud.AclRoleArgs{\n\t\t\tRules: rediscloud.AclRoleRuleArray{\n\t\t\t\t&rediscloud.AclRoleRuleArgs{\n\t\t\t\t\tName: rule_resource.Name,\n\t\t\t\t\tDatabases: rediscloud.AclRoleRuleDatabaseArray{\n\t\t\t\t\t\t&rediscloud.AclRoleRuleDatabaseArgs{\n\t\t\t\t\t\t\tSubscription: pulumi.Any(rediscloud_subscription.SubscriptionResource.Id),\n\t\t\t\t\t\t\tDatabase:     pulumi.Any(rediscloud_subscription_database.DatabaseResource.Db_id),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.AclRule;\nimport com.pulumi.rediscloud.AclRuleArgs;\nimport com.pulumi.rediscloud.AclRole;\nimport com.pulumi.rediscloud.AclRoleArgs;\nimport com.pulumi.rediscloud.inputs.AclRoleRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var rule_resource = new AclRule(\"rule-resource\", AclRuleArgs.builder()        \n            .rule(\"+@read ~cache:*\")\n            .build());\n\n        var role_resource = new AclRole(\"role-resource\", AclRoleArgs.builder()        \n            .rules(AclRoleRuleArgs.builder()\n                .name(rule_resource.name())\n                .databases(AclRoleRuleDatabaseArgs.builder()\n                    .subscription(rediscloud_subscription.subscription-resource().id())\n                    .database(rediscloud_subscription_database.database-resource().db_id())\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule-resource:\n    type: rediscloud:AclRule\n    properties:\n      rule: +@read ~cache:*\n  role-resource:\n    type: rediscloud:AclRole\n    properties:\n      rules:\n        - name: ${[\"rule-resource\"].name}\n          databases:\n            - subscription: ${rediscloud_subscription\"subscription-resource\"[%!s(MISSING)].id}\n              database: ${rediscloud_subscription_database\"database-resource\"[%!s(MISSING)].db_id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`rediscloud_acl_role` can be imported using the Identifier of the Role, e.g.\n\n```sh\n $ pulumi import rediscloud:index/aclRole:AclRole role-resource 123456\n```\n ",
      "properties": {
        "name": {
          "type": "string",
          "description": "A meaningful name for the role. Must be unique.\n"
        },
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FAclRoleRule:AclRoleRule"
          },
          "description": "A set of rule association objects, documented below.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "rules"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "A meaningful name for the role. Must be unique.\n"
        },
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FAclRoleRule:AclRoleRule"
          },
          "description": "A set of rule association objects, documented below.\n"
        }
      },
      "requiredInputs": [
        "rules"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AclRole resources.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "A meaningful name for the role. Must be unique.\n"
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/types/rediscloud:index%2FAclRoleRule:AclRoleRule"
            },
            "description": "A set of rule association objects, documented below.\n"
          }
        },
        "type": "object"
      }
    },
    "rediscloud:index/aclRule:AclRule": {
      "description": "Creates a Rule (a.k.a Redis Rule, Redis ACL) in your Redis Enterprise Cloud Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@rediscloud/pulumi-rediscloud\";\n\nconst rule_resource = new rediscloud.AclRule(\"rule-resource\", {rule: \"+@read ~cache:*\"});\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nrule_resource = rediscloud.AclRule(\"rule-resource\", rule=\"+@read ~cache:*\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = RedisLabs.Rediscloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var rule_resource = new Rediscloud.AclRule(\"rule-resource\", new()\n    {\n        Rule = \"+@read ~cache:*\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rediscloud.NewAclRule(ctx, \"rule-resource\", &rediscloud.AclRuleArgs{\n\t\t\tRule: pulumi.String(\"+@read ~cache:*\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.AclRule;\nimport com.pulumi.rediscloud.AclRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var rule_resource = new AclRule(\"rule-resource\", AclRuleArgs.builder()        \n            .rule(\"+@read ~cache:*\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule-resource:\n    type: rediscloud:AclRule\n    properties:\n      rule: +@read ~cache:*\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`rediscloud_acl_rule` can be imported using the Identifier of the Rule, e.g.\n\n```sh\n $ pulumi import rediscloud:index/aclRule:AclRule rule-resource 123456\n```\n ",
      "properties": {
        "name": {
          "type": "string",
          "description": "A meaningful name for the rule. Must be unique.\n"
        },
        "rule": {
          "type": "string",
          "description": "The ACL rule itself, built up as permissions/restrictions written in\nthe [ACL Syntax](https://docs.redis.com/latest/rc/security/access-control/data-access-control/configure-acls/#define-permissions-with-acl-syntax).\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "rule"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "A meaningful name for the rule. Must be unique.\n"
        },
        "rule": {
          "type": "string",
          "description": "The ACL rule itself, built up as permissions/restrictions written in\nthe [ACL Syntax](https://docs.redis.com/latest/rc/security/access-control/data-access-control/configure-acls/#define-permissions-with-acl-syntax).\n"
        }
      },
      "requiredInputs": [
        "rule"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AclRule resources.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "A meaningful name for the rule. Must be unique.\n"
          },
          "rule": {
            "type": "string",
            "description": "The ACL rule itself, built up as permissions/restrictions written in\nthe [ACL Syntax](https://docs.redis.com/latest/rc/security/access-control/data-access-control/configure-acls/#define-permissions-with-acl-syntax).\n"
          }
        },
        "type": "object"
      }
    },
    "rediscloud:index/aclUser:AclUser": {
      "description": "Creates a User in your Redis Enterprise Cloud Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@rediscloud/pulumi-rediscloud\";\n\nconst user_resource = new rediscloud.AclUser(\"user-resource\", {\n    role: rediscloud_acl_role[\"role-resource\"].name,\n    password: \"mY.passw0rd\",\n});\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nuser_resource = rediscloud.AclUser(\"user-resource\",\n    role=rediscloud_acl_role[\"role-resource\"][\"name\"],\n    password=\"mY.passw0rd\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = RedisLabs.Rediscloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var user_resource = new Rediscloud.AclUser(\"user-resource\", new()\n    {\n        Role = rediscloud_acl_role.Role_resource.Name,\n        Password = \"mY.passw0rd\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rediscloud.NewAclUser(ctx, \"user-resource\", &rediscloud.AclUserArgs{\n\t\t\tRole:     pulumi.Any(rediscloud_acl_role.RoleResource.Name),\n\t\t\tPassword: pulumi.String(\"mY.passw0rd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.AclUser;\nimport com.pulumi.rediscloud.AclUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var user_resource = new AclUser(\"user-resource\", AclUserArgs.builder()        \n            .role(rediscloud_acl_role.role-resource().name())\n            .password(\"mY.passw0rd\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user-resource:\n    type: rediscloud:AclUser\n    properties:\n      role: ${rediscloud_acl_role\"role-resource\"[%!s(MISSING)].name}\n      password: mY.passw0rd\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`rediscloud_acl_user` can be imported using the Identifier of the User, e.g.\n\n```sh\n $ pulumi import rediscloud:index/aclUser:AclUser user-resource 123456\n```\n ",
      "properties": {
        "name": {
          "type": "string",
          "description": "A meaningful name for the User. Must be unique.\n"
        },
        "password": {
          "type": "string",
          "description": "The password for this ACL User. Must contain a lower-case letter, a\nupper-case letter, a\nnumber and a special character.\n",
          "secret": true
        },
        "role": {
          "type": "string",
          "description": "The name of the Role held by the User.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "password",
        "role"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "A meaningful name for the User. Must be unique.\n",
          "willReplaceOnChanges": true
        },
        "password": {
          "type": "string",
          "description": "The password for this ACL User. Must contain a lower-case letter, a\nupper-case letter, a\nnumber and a special character.\n",
          "secret": true,
          "willReplaceOnChanges": true
        },
        "role": {
          "type": "string",
          "description": "The name of the Role held by the User.\n"
        }
      },
      "requiredInputs": [
        "password",
        "role"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AclUser resources.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "A meaningful name for the User. Must be unique.\n",
            "willReplaceOnChanges": true
          },
          "password": {
            "type": "string",
            "description": "The password for this ACL User. Must contain a lower-case letter, a\nupper-case letter, a\nnumber and a special character.\n",
            "secret": true,
            "willReplaceOnChanges": true
          },
          "role": {
            "type": "string",
            "description": "The name of the Role held by the User.\n"
          }
        },
        "type": "object"
      }
    },
    "rediscloud:index/activeActiveSubscription:ActiveActiveSubscription": {
      "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@pulumi/rediscloud\";\nimport * as rediscloud from \"@rediscloud/pulumi-rediscloud\";\n\nconst card = rediscloud.getPaymentMethod({\n    cardType: \"Visa\",\n});\nconst subscription_resource = new rediscloud.ActiveActiveSubscription(\"subscription-resource\", {\n    paymentMethodId: card.then(card => card.id),\n    cloudProvider: \"AWS\",\n    creationPlan: {\n        memoryLimitInGb: 1,\n        quantity: 1,\n        regions: [\n            {\n                region: \"us-east-1\",\n                networkingDeploymentCidr: \"192.168.0.0/24\",\n                writeOperationsPerSecond: 1000,\n                readOperationsPerSecond: 1000,\n            },\n            {\n                region: \"us-east-2\",\n                networkingDeploymentCidr: \"10.0.1.0/24\",\n                writeOperationsPerSecond: 1000,\n                readOperationsPerSecond: 1000,\n            },\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\ncard = rediscloud.get_payment_method(card_type=\"Visa\")\nsubscription_resource = rediscloud.ActiveActiveSubscription(\"subscription-resource\",\n    payment_method_id=card.id,\n    cloud_provider=\"AWS\",\n    creation_plan=rediscloud.ActiveActiveSubscriptionCreationPlanArgs(\n        memory_limit_in_gb=1,\n        quantity=1,\n        regions=[\n            rediscloud.ActiveActiveSubscriptionCreationPlanRegionArgs(\n                region=\"us-east-1\",\n                networking_deployment_cidr=\"192.168.0.0/24\",\n                write_operations_per_second=1000,\n                read_operations_per_second=1000,\n            ),\n            rediscloud.ActiveActiveSubscriptionCreationPlanRegionArgs(\n                region=\"us-east-2\",\n                networking_deployment_cidr=\"10.0.1.0/24\",\n                write_operations_per_second=1000,\n                read_operations_per_second=1000,\n            ),\n        ],\n    ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = Pulumi.Rediscloud;\nusing Rediscloud = RedisLabs.Rediscloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var card = Rediscloud.GetPaymentMethod.Invoke(new()\n    {\n        CardType = \"Visa\",\n    });\n\n    var subscription_resource = new Rediscloud.ActiveActiveSubscription(\"subscription-resource\", new()\n    {\n        PaymentMethodId = card.Apply(getPaymentMethodResult => getPaymentMethodResult.Id),\n        CloudProvider = \"AWS\",\n        CreationPlan = new Rediscloud.Inputs.ActiveActiveSubscriptionCreationPlanArgs\n        {\n            MemoryLimitInGb = 1,\n            Quantity = 1,\n            Regions = new[]\n            {\n                new Rediscloud.Inputs.ActiveActiveSubscriptionCreationPlanRegionArgs\n                {\n                    Region = \"us-east-1\",\n                    NetworkingDeploymentCidr = \"192.168.0.0/24\",\n                    WriteOperationsPerSecond = 1000,\n                    ReadOperationsPerSecond = 1000,\n                },\n                new Rediscloud.Inputs.ActiveActiveSubscriptionCreationPlanRegionArgs\n                {\n                    Region = \"us-east-2\",\n                    NetworkingDeploymentCidr = \"10.0.1.0/24\",\n                    WriteOperationsPerSecond = 1000,\n                    ReadOperationsPerSecond = 1000,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcard, err := rediscloud.GetPaymentMethod(ctx, &rediscloud.GetPaymentMethodArgs{\n\t\t\tCardType: pulumi.StringRef(\"Visa\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rediscloud.NewActiveActiveSubscription(ctx, \"subscription-resource\", &rediscloud.ActiveActiveSubscriptionArgs{\n\t\t\tPaymentMethodId: *pulumi.String(card.Id),\n\t\t\tCloudProvider:   pulumi.String(\"AWS\"),\n\t\t\tCreationPlan: &rediscloud.ActiveActiveSubscriptionCreationPlanArgs{\n\t\t\t\tMemoryLimitInGb: pulumi.Float64(1),\n\t\t\t\tQuantity:        pulumi.Int(1),\n\t\t\t\tRegions: rediscloud.ActiveActiveSubscriptionCreationPlanRegionArray{\n\t\t\t\t\t&rediscloud.ActiveActiveSubscriptionCreationPlanRegionArgs{\n\t\t\t\t\t\tRegion:                   pulumi.String(\"us-east-1\"),\n\t\t\t\t\t\tNetworkingDeploymentCidr: pulumi.String(\"192.168.0.0/24\"),\n\t\t\t\t\t\tWriteOperationsPerSecond: pulumi.Int(1000),\n\t\t\t\t\t\tReadOperationsPerSecond:  pulumi.Int(1000),\n\t\t\t\t\t},\n\t\t\t\t\t&rediscloud.ActiveActiveSubscriptionCreationPlanRegionArgs{\n\t\t\t\t\t\tRegion:                   pulumi.String(\"us-east-2\"),\n\t\t\t\t\t\tNetworkingDeploymentCidr: pulumi.String(\"10.0.1.0/24\"),\n\t\t\t\t\t\tWriteOperationsPerSecond: pulumi.Int(1000),\n\t\t\t\t\t\tReadOperationsPerSecond:  pulumi.Int(1000),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.RediscloudFunctions;\nimport com.pulumi.rediscloud.inputs.GetPaymentMethodArgs;\nimport com.pulumi.rediscloud.ActiveActiveSubscription;\nimport com.pulumi.rediscloud.ActiveActiveSubscriptionArgs;\nimport com.pulumi.rediscloud.inputs.ActiveActiveSubscriptionCreationPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var card = RediscloudFunctions.getPaymentMethod(GetPaymentMethodArgs.builder()\n            .cardType(\"Visa\")\n            .build());\n\n        var subscription_resource = new ActiveActiveSubscription(\"subscription-resource\", ActiveActiveSubscriptionArgs.builder()        \n            .paymentMethodId(card.applyValue(getPaymentMethodResult -> getPaymentMethodResult.id()))\n            .cloudProvider(\"AWS\")\n            .creationPlan(ActiveActiveSubscriptionCreationPlanArgs.builder()\n                .memoryLimitInGb(1)\n                .quantity(1)\n                .regions(                \n                    ActiveActiveSubscriptionCreationPlanRegionArgs.builder()\n                        .region(\"us-east-1\")\n                        .networkingDeploymentCidr(\"192.168.0.0/24\")\n                        .writeOperationsPerSecond(1000)\n                        .readOperationsPerSecond(1000)\n                        .build(),\n                    ActiveActiveSubscriptionCreationPlanRegionArgs.builder()\n                        .region(\"us-east-2\")\n                        .networkingDeploymentCidr(\"10.0.1.0/24\")\n                        .writeOperationsPerSecond(1000)\n                        .readOperationsPerSecond(1000)\n                        .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  subscription-resource:\n    type: rediscloud:ActiveActiveSubscription\n    properties:\n      paymentMethodId: ${card.id}\n      cloudProvider: AWS\n      creationPlan:\n        memoryLimitInGb: 1\n        quantity: 1\n        regions:\n          - region: us-east-1\n            networkingDeploymentCidr: 192.168.0.0/24\n            writeOperationsPerSecond: 1000\n            readOperationsPerSecond: 1000\n          - region: us-east-2\n            networkingDeploymentCidr: 10.0.1.0/24\n            writeOperationsPerSecond: 1000\n            readOperationsPerSecond: 1000\nvariables:\n  card:\n    fn::invoke:\n      Function: rediscloud:getPaymentMethod\n      Arguments:\n        cardType: Visa\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`rediscloud_active_active_subscription` can be imported using the ID of the subscription, e.g.\n\n```sh\n $ pulumi import rediscloud:index/activeActiveSubscription:ActiveActiveSubscription subscription-resource 12345678\n```\n ~> __Note:__ the creation_plan block will be ignored during imports.\n\n",
      "properties": {
        "cloudProvider": {
          "type": "string",
          "description": "The cloud provider to use with the subscription, (either `AWS` or `GCP`). Default: ‘AWS’. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "creationPlan": {
          "$ref": "#/types/rediscloud:index%2FActiveActiveSubscriptionCreationPlan:ActiveActiveSubscriptionCreationPlan",
          "description": "A creation plan object, documented below\n"
        },
        "name": {
          "type": "string",
          "description": "A meaningful name to identify the subscription\n"
        },
        "paymentMethod": {
          "type": "string",
          "description": "The payment method for the requested subscription, (either `credit-card` or `marketplace`). If `credit-card` is specified, `payment_method_id` must be defined. Default: 'credit-card'. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "paymentMethodId": {
          "type": "string",
          "description": "A valid payment method pre-defined in the current account. This value is __Optional__ for AWS/GCP Marketplace accounts, but __Required__ for all other account types\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "paymentMethodId"
      ],
      "inputProperties": {
        "cloudProvider": {
          "type": "string",
          "description": "The cloud provider to use with the subscription, (either `AWS` or `GCP`). Default: ‘AWS’. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "creationPlan": {
          "$ref": "#/types/rediscloud:index%2FActiveActiveSubscriptionCreationPlan:ActiveActiveSubscriptionCreationPlan",
          "description": "A creation plan object, documented below\n"
        },
        "name": {
          "type": "string",
          "description": "A meaningful name to identify the subscription\n"
        },
        "paymentMethod": {
          "type": "string",
          "description": "The payment method for the requested subscription, (either `credit-card` or `marketplace`). If `credit-card` is specified, `payment_method_id` must be defined. Default: 'credit-card'. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "paymentMethodId": {
          "type": "string",
          "description": "A valid payment method pre-defined in the current account. This value is __Optional__ for AWS/GCP Marketplace accounts, but __Required__ for all other account types\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ActiveActiveSubscription resources.\n",
        "properties": {
          "cloudProvider": {
            "type": "string",
            "description": "The cloud provider to use with the subscription, (either `AWS` or `GCP`). Default: ‘AWS’. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "creationPlan": {
            "$ref": "#/types/rediscloud:index%2FActiveActiveSubscriptionCreationPlan:ActiveActiveSubscriptionCreationPlan",
            "description": "A creation plan object, documented below\n"
          },
          "name": {
            "type": "string",
            "description": "A meaningful name to identify the subscription\n"
          },
          "paymentMethod": {
            "type": "string",
            "description": "The payment method for the requested subscription, (either `credit-card` or `marketplace`). If `credit-card` is specified, `payment_method_id` must be defined. Default: 'credit-card'. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "paymentMethodId": {
            "type": "string",
            "description": "A valid payment method pre-defined in the current account. This value is __Optional__ for AWS/GCP Marketplace accounts, but __Required__ for all other account types\n"
          }
        },
        "type": "object"
      }
    },
    "rediscloud:index/activeActiveSubscriptionDatabase:ActiveActiveSubscriptionDatabase": {
      "description": "Creates a Database within a specified Active-Active Subscription in your Redis Enterprise Cloud Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@pulumi/rediscloud\";\nimport * as rediscloud from \"@rediscloud/pulumi-rediscloud\";\n\nexport = async () => {\n    const card = await rediscloud.getPaymentMethod({\n        cardType: \"Visa\",\n    });\n    const subscription_resource = new rediscloud.ActiveActiveSubscription(\"subscription-resource\", {\n        paymentMethodId: card.id,\n        cloudProvider: \"AWS\",\n        creationPlan: {\n            memoryLimitInGb: 1,\n            quantity: 1,\n            regions: [\n                {\n                    region: \"us-east-1\",\n                    networkingDeploymentCidr: \"192.168.0.0/24\",\n                    writeOperationsPerSecond: 1000,\n                    readOperationsPerSecond: 1000,\n                },\n                {\n                    region: \"us-east-2\",\n                    networkingDeploymentCidr: \"10.0.1.0/24\",\n                    writeOperationsPerSecond: 1000,\n                    readOperationsPerSecond: 2000,\n                },\n            ],\n        },\n    });\n    const database_resource = new rediscloud.ActiveActiveSubscriptionDatabase(\"database-resource\", {\n        subscriptionId: subscription_resource.id,\n        memoryLimitInGb: 1,\n        globalDataPersistence: \"aof-every-1-second\",\n        globalPassword: \"some-random-pass-2\",\n        globalSourceIps: [\"192.168.0.0/16\"],\n        globalAlerts: [{\n            name: \"dataset-size\",\n            value: 40,\n        }],\n        overrideRegions: [\n            {\n                name: \"us-east-2\",\n                overrideGlobalSourceIps: [\"192.10.0.0/16\"],\n            },\n            {\n                name: \"us-east-1\",\n                overrideGlobalDataPersistence: \"none\",\n                overrideGlobalPassword: \"region-specific-password\",\n                overrideGlobalAlerts: [{\n                    name: \"dataset-size\",\n                    value: 60,\n                }],\n            },\n        ],\n    });\n    return {\n        \"us-east-1-public-endpoints\": database_resource.publicEndpoint[\"us-east-1\"],\n        \"us-east-2-private-endpoints\": database_resource.privateEndpoint[\"us-east-1\"],\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\ncard = rediscloud.get_payment_method(card_type=\"Visa\")\nsubscription_resource = rediscloud.ActiveActiveSubscription(\"subscription-resource\",\n    payment_method_id=card.id,\n    cloud_provider=\"AWS\",\n    creation_plan=rediscloud.ActiveActiveSubscriptionCreationPlanArgs(\n        memory_limit_in_gb=1,\n        quantity=1,\n        regions=[\n            rediscloud.ActiveActiveSubscriptionCreationPlanRegionArgs(\n                region=\"us-east-1\",\n                networking_deployment_cidr=\"192.168.0.0/24\",\n                write_operations_per_second=1000,\n                read_operations_per_second=1000,\n            ),\n            rediscloud.ActiveActiveSubscriptionCreationPlanRegionArgs(\n                region=\"us-east-2\",\n                networking_deployment_cidr=\"10.0.1.0/24\",\n                write_operations_per_second=1000,\n                read_operations_per_second=2000,\n            ),\n        ],\n    ))\ndatabase_resource = rediscloud.ActiveActiveSubscriptionDatabase(\"database-resource\",\n    subscription_id=subscription_resource.id,\n    memory_limit_in_gb=1,\n    global_data_persistence=\"aof-every-1-second\",\n    global_password=\"some-random-pass-2\",\n    global_source_ips=[\"192.168.0.0/16\"],\n    global_alerts=[rediscloud.ActiveActiveSubscriptionDatabaseGlobalAlertArgs(\n        name=\"dataset-size\",\n        value=40,\n    )],\n    override_regions=[\n        rediscloud.ActiveActiveSubscriptionDatabaseOverrideRegionArgs(\n            name=\"us-east-2\",\n            override_global_source_ips=[\"192.10.0.0/16\"],\n        ),\n        rediscloud.ActiveActiveSubscriptionDatabaseOverrideRegionArgs(\n            name=\"us-east-1\",\n            override_global_data_persistence=\"none\",\n            override_global_password=\"region-specific-password\",\n            override_global_alerts=[rediscloud.ActiveActiveSubscriptionDatabaseOverrideRegionOverrideGlobalAlertArgs(\n                name=\"dataset-size\",\n                value=60,\n            )],\n        ),\n    ])\npulumi.export(\"us-east-1-public-endpoints\", database_resource.public_endpoint[\"us-east-1\"])\npulumi.export(\"us-east-2-private-endpoints\", database_resource.private_endpoint[\"us-east-1\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = Pulumi.Rediscloud;\nusing Rediscloud = RedisLabs.Rediscloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var card = Rediscloud.GetPaymentMethod.Invoke(new()\n    {\n        CardType = \"Visa\",\n    });\n\n    var subscription_resource = new Rediscloud.ActiveActiveSubscription(\"subscription-resource\", new()\n    {\n        PaymentMethodId = card.Apply(getPaymentMethodResult => getPaymentMethodResult.Id),\n        CloudProvider = \"AWS\",\n        CreationPlan = new Rediscloud.Inputs.ActiveActiveSubscriptionCreationPlanArgs\n        {\n            MemoryLimitInGb = 1,\n            Quantity = 1,\n            Regions = new[]\n            {\n                new Rediscloud.Inputs.ActiveActiveSubscriptionCreationPlanRegionArgs\n                {\n                    Region = \"us-east-1\",\n                    NetworkingDeploymentCidr = \"192.168.0.0/24\",\n                    WriteOperationsPerSecond = 1000,\n                    ReadOperationsPerSecond = 1000,\n                },\n                new Rediscloud.Inputs.ActiveActiveSubscriptionCreationPlanRegionArgs\n                {\n                    Region = \"us-east-2\",\n                    NetworkingDeploymentCidr = \"10.0.1.0/24\",\n                    WriteOperationsPerSecond = 1000,\n                    ReadOperationsPerSecond = 2000,\n                },\n            },\n        },\n    });\n\n    var database_resource = new Rediscloud.ActiveActiveSubscriptionDatabase(\"database-resource\", new()\n    {\n        SubscriptionId = subscription_resource.Id,\n        MemoryLimitInGb = 1,\n        GlobalDataPersistence = \"aof-every-1-second\",\n        GlobalPassword = \"some-random-pass-2\",\n        GlobalSourceIps = new[]\n        {\n            \"192.168.0.0/16\",\n        },\n        GlobalAlerts = new[]\n        {\n            new Rediscloud.Inputs.ActiveActiveSubscriptionDatabaseGlobalAlertArgs\n            {\n                Name = \"dataset-size\",\n                Value = 40,\n            },\n        },\n        OverrideRegions = new[]\n        {\n            new Rediscloud.Inputs.ActiveActiveSubscriptionDatabaseOverrideRegionArgs\n            {\n                Name = \"us-east-2\",\n                OverrideGlobalSourceIps = new[]\n                {\n                    \"192.10.0.0/16\",\n                },\n            },\n            new Rediscloud.Inputs.ActiveActiveSubscriptionDatabaseOverrideRegionArgs\n            {\n                Name = \"us-east-1\",\n                OverrideGlobalDataPersistence = \"none\",\n                OverrideGlobalPassword = \"region-specific-password\",\n                OverrideGlobalAlerts = new[]\n                {\n                    new Rediscloud.Inputs.ActiveActiveSubscriptionDatabaseOverrideRegionOverrideGlobalAlertArgs\n                    {\n                        Name = \"dataset-size\",\n                        Value = 60,\n                    },\n                },\n            },\n        },\n    });\n\n    return new Dictionary<string, object?>\n    {\n        [\"us-east-1-public-endpoints\"] = database_resource.PublicEndpoint.Apply(publicEndpoint => publicEndpoint.Us_east_1),\n        [\"us-east-2-private-endpoints\"] = database_resource.PrivateEndpoint.Apply(privateEndpoint => privateEndpoint.Us_east_1),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcard, err := rediscloud.GetPaymentMethod(ctx, &rediscloud.GetPaymentMethodArgs{\n\t\t\tCardType: pulumi.StringRef(\"Visa\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rediscloud.NewActiveActiveSubscription(ctx, \"subscription-resource\", &rediscloud.ActiveActiveSubscriptionArgs{\n\t\t\tPaymentMethodId: *pulumi.String(card.Id),\n\t\t\tCloudProvider:   pulumi.String(\"AWS\"),\n\t\t\tCreationPlan: &rediscloud.ActiveActiveSubscriptionCreationPlanArgs{\n\t\t\t\tMemoryLimitInGb: pulumi.Float64(1),\n\t\t\t\tQuantity:        pulumi.Int(1),\n\t\t\t\tRegions: rediscloud.ActiveActiveSubscriptionCreationPlanRegionArray{\n\t\t\t\t\t&rediscloud.ActiveActiveSubscriptionCreationPlanRegionArgs{\n\t\t\t\t\t\tRegion:                   pulumi.String(\"us-east-1\"),\n\t\t\t\t\t\tNetworkingDeploymentCidr: pulumi.String(\"192.168.0.0/24\"),\n\t\t\t\t\t\tWriteOperationsPerSecond: pulumi.Int(1000),\n\t\t\t\t\t\tReadOperationsPerSecond:  pulumi.Int(1000),\n\t\t\t\t\t},\n\t\t\t\t\t&rediscloud.ActiveActiveSubscriptionCreationPlanRegionArgs{\n\t\t\t\t\t\tRegion:                   pulumi.String(\"us-east-2\"),\n\t\t\t\t\t\tNetworkingDeploymentCidr: pulumi.String(\"10.0.1.0/24\"),\n\t\t\t\t\t\tWriteOperationsPerSecond: pulumi.Int(1000),\n\t\t\t\t\t\tReadOperationsPerSecond:  pulumi.Int(2000),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rediscloud.NewActiveActiveSubscriptionDatabase(ctx, \"database-resource\", &rediscloud.ActiveActiveSubscriptionDatabaseArgs{\n\t\t\tSubscriptionId:        subscription_resource.ID(),\n\t\t\tMemoryLimitInGb:       pulumi.Float64(1),\n\t\t\tGlobalDataPersistence: pulumi.String(\"aof-every-1-second\"),\n\t\t\tGlobalPassword:        pulumi.String(\"some-random-pass-2\"),\n\t\t\tGlobalSourceIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"192.168.0.0/16\"),\n\t\t\t},\n\t\t\tGlobalAlerts: rediscloud.ActiveActiveSubscriptionDatabaseGlobalAlertArray{\n\t\t\t\t&rediscloud.ActiveActiveSubscriptionDatabaseGlobalAlertArgs{\n\t\t\t\t\tName:  pulumi.String(\"dataset-size\"),\n\t\t\t\t\tValue: pulumi.Int(40),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOverrideRegions: rediscloud.ActiveActiveSubscriptionDatabaseOverrideRegionArray{\n\t\t\t\t&rediscloud.ActiveActiveSubscriptionDatabaseOverrideRegionArgs{\n\t\t\t\t\tName: pulumi.String(\"us-east-2\"),\n\t\t\t\t\tOverrideGlobalSourceIps: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"192.10.0.0/16\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&rediscloud.ActiveActiveSubscriptionDatabaseOverrideRegionArgs{\n\t\t\t\t\tName:                          pulumi.String(\"us-east-1\"),\n\t\t\t\t\tOverrideGlobalDataPersistence: pulumi.String(\"none\"),\n\t\t\t\t\tOverrideGlobalPassword:        pulumi.String(\"region-specific-password\"),\n\t\t\t\t\tOverrideGlobalAlerts: rediscloud.ActiveActiveSubscriptionDatabaseOverrideRegionOverrideGlobalAlertArray{\n\t\t\t\t\t\t&rediscloud.ActiveActiveSubscriptionDatabaseOverrideRegionOverrideGlobalAlertArgs{\n\t\t\t\t\t\t\tName:  pulumi.String(\"dataset-size\"),\n\t\t\t\t\t\t\tValue: pulumi.Int(60),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"us-east-1-public-endpoints\", database_resource.PublicEndpoint.ApplyT(func(publicEndpoint map[string]string) (string, error) {\n\t\t\treturn publicEndpoint.UsEast1, nil\n\t\t}).(pulumi.StringOutput))\n\t\tctx.Export(\"us-east-2-private-endpoints\", database_resource.PrivateEndpoint.ApplyT(func(privateEndpoint map[string]string) (string, error) {\n\t\t\treturn privateEndpoint.UsEast1, nil\n\t\t}).(pulumi.StringOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.RediscloudFunctions;\nimport com.pulumi.rediscloud.inputs.GetPaymentMethodArgs;\nimport com.pulumi.rediscloud.ActiveActiveSubscription;\nimport com.pulumi.rediscloud.ActiveActiveSubscriptionArgs;\nimport com.pulumi.rediscloud.inputs.ActiveActiveSubscriptionCreationPlanArgs;\nimport com.pulumi.rediscloud.ActiveActiveSubscriptionDatabase;\nimport com.pulumi.rediscloud.ActiveActiveSubscriptionDatabaseArgs;\nimport com.pulumi.rediscloud.inputs.ActiveActiveSubscriptionDatabaseGlobalAlertArgs;\nimport com.pulumi.rediscloud.inputs.ActiveActiveSubscriptionDatabaseOverrideRegionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var card = RediscloudFunctions.getPaymentMethod(GetPaymentMethodArgs.builder()\n            .cardType(\"Visa\")\n            .build());\n\n        var subscription_resource = new ActiveActiveSubscription(\"subscription-resource\", ActiveActiveSubscriptionArgs.builder()        \n            .paymentMethodId(card.applyValue(getPaymentMethodResult -> getPaymentMethodResult.id()))\n            .cloudProvider(\"AWS\")\n            .creationPlan(ActiveActiveSubscriptionCreationPlanArgs.builder()\n                .memoryLimitInGb(1)\n                .quantity(1)\n                .regions(                \n                    ActiveActiveSubscriptionCreationPlanRegionArgs.builder()\n                        .region(\"us-east-1\")\n                        .networkingDeploymentCidr(\"192.168.0.0/24\")\n                        .writeOperationsPerSecond(1000)\n                        .readOperationsPerSecond(1000)\n                        .build(),\n                    ActiveActiveSubscriptionCreationPlanRegionArgs.builder()\n                        .region(\"us-east-2\")\n                        .networkingDeploymentCidr(\"10.0.1.0/24\")\n                        .writeOperationsPerSecond(1000)\n                        .readOperationsPerSecond(2000)\n                        .build())\n                .build())\n            .build());\n\n        var database_resource = new ActiveActiveSubscriptionDatabase(\"database-resource\", ActiveActiveSubscriptionDatabaseArgs.builder()        \n            .subscriptionId(subscription_resource.id())\n            .memoryLimitInGb(1)\n            .globalDataPersistence(\"aof-every-1-second\")\n            .globalPassword(\"some-random-pass-2\")\n            .globalSourceIps(\"192.168.0.0/16\")\n            .globalAlerts(ActiveActiveSubscriptionDatabaseGlobalAlertArgs.builder()\n                .name(\"dataset-size\")\n                .value(40)\n                .build())\n            .overrideRegions(            \n                ActiveActiveSubscriptionDatabaseOverrideRegionArgs.builder()\n                    .name(\"us-east-2\")\n                    .overrideGlobalSourceIps(\"192.10.0.0/16\")\n                    .build(),\n                ActiveActiveSubscriptionDatabaseOverrideRegionArgs.builder()\n                    .name(\"us-east-1\")\n                    .overrideGlobalDataPersistence(\"none\")\n                    .overrideGlobalPassword(\"region-specific-password\")\n                    .overrideGlobalAlerts(ActiveActiveSubscriptionDatabaseOverrideRegionOverrideGlobalAlertArgs.builder()\n                        .name(\"dataset-size\")\n                        .value(60)\n                        .build())\n                    .build())\n            .build());\n\n        ctx.export(\"us-east-1-public-endpoints\", database_resource.publicEndpoint().applyValue(publicEndpoint -> publicEndpoint.us-east-1()));\n        ctx.export(\"us-east-2-private-endpoints\", database_resource.privateEndpoint().applyValue(privateEndpoint -> privateEndpoint.us-east-1()));\n    }\n}\n```\n```yaml\nresources:\n  subscription-resource:\n    type: rediscloud:ActiveActiveSubscription\n    properties:\n      paymentMethodId: ${card.id}\n      cloudProvider: AWS\n      creationPlan:\n        memoryLimitInGb: 1\n        quantity: 1\n        regions:\n          - region: us-east-1\n            networkingDeploymentCidr: 192.168.0.0/24\n            writeOperationsPerSecond: 1000\n            readOperationsPerSecond: 1000\n          - region: us-east-2\n            networkingDeploymentCidr: 10.0.1.0/24\n            writeOperationsPerSecond: 1000\n            readOperationsPerSecond: 2000\n  database-resource:\n    type: rediscloud:ActiveActiveSubscriptionDatabase\n    properties:\n      subscriptionId: ${[\"subscription-resource\"].id}\n      memoryLimitInGb: 1\n      globalDataPersistence: aof-every-1-second\n      globalPassword: some-random-pass-2\n      globalSourceIps:\n        - 192.168.0.0/16\n      globalAlerts:\n        - name: dataset-size\n          value: 40\n      overrideRegions:\n        - name: us-east-2\n          overrideGlobalSourceIps:\n            - 192.10.0.0/16\n        - name: us-east-1\n          overrideGlobalDataPersistence: none\n          overrideGlobalPassword: region-specific-password\n          overrideGlobalAlerts:\n            - name: dataset-size\n              value: 60\nvariables:\n  card:\n    fn::invoke:\n      Function: rediscloud:getPaymentMethod\n      Arguments:\n        cardType: Visa\noutputs:\n  us-east-1-public-endpoints: ${[\"database-resource\"].publicEndpoint\"us-east-1\"[%!s(MISSING)]}\n  us-east-2-private-endpoints: ${[\"database-resource\"].privateEndpoint\"us-east-1\"[%!s(MISSING)]}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`rediscloud_active_active_subscription_database` can be imported using the ID of the Active-Active subscription and the ID of the database in the format {subscription ID}/{database ID}, e.g.\n\n```sh\n $ pulumi import rediscloud:index/activeActiveSubscriptionDatabase:ActiveActiveSubscriptionDatabase database-resource 123456/12345678\n```\n NoteDue to constraints in the Redis Cloud API, the import process will not import global attributes or override region attributes. If you wish to use these attributes in your Terraform configuration, you will need to manually add them to your Terraform configuration and run `pulumi up` to update the database.\n\n",
      "properties": {
        "clientSslCertificate": {
          "type": "string",
          "description": "SSL certificate to authenticate user connections.\n"
        },
        "dataEviction": {
          "type": "string",
          "description": "The data items eviction policy (either: 'allkeys-lru', 'allkeys-lfu', 'allkeys-random', 'volatile-lru', 'volatile-lfu', 'volatile-random', 'volatile-ttl' or 'noeviction'. Default: 'volatile-lru')\n"
        },
        "dbId": {
          "type": "integer",
          "description": "Identifier of the database created\n"
        },
        "enableTls": {
          "type": "boolean",
          "description": "Use TLS for authentication. Default: ‘false’\n"
        },
        "externalEndpointForOssClusterApi": {
          "type": "boolean",
          "description": "Should use the external endpoint for open-source (OSS) Cluster API.\nCan only be enabled if OSS Cluster API support is enabled. Default: 'false'\n"
        },
        "globalAlerts": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FActiveActiveSubscriptionDatabaseGlobalAlert:ActiveActiveSubscriptionDatabaseGlobalAlert"
          },
          "description": "A block defining Redis database alert of regions that don't override global settings, documented below, can be specified multiple times. (either: 'dataset-size', 'datasets-size', 'throughput-higher-than', 'throughput-lower-than', 'latency', 'syncsource-error', 'syncsource-lag' or 'connections-limit')\n"
        },
        "globalDataPersistence": {
          "type": "string",
          "description": "Global rate of database data persistence (in persistent storage) of regions that dont override global settings. Default: 'none'\n"
        },
        "globalPassword": {
          "type": "string",
          "description": "Password to access the database of regions that don't override global settings. If left empty, the password will be generated automatically\n",
          "secret": true
        },
        "globalSourceIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of source IP addresses or subnet masks of regions that don't override global settings. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'])\n"
        },
        "memoryLimitInGb": {
          "type": "number",
          "description": "Maximum memory usage for this specific database, including replication and other overhead\n"
        },
        "name": {
          "type": "string",
          "description": "A meaningful name to identify the database. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "overrideRegions": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FActiveActiveSubscriptionDatabaseOverrideRegion:ActiveActiveSubscriptionDatabaseOverrideRegion"
          },
          "description": "Override region specific configuration, documented below\n"
        },
        "port": {
          "type": "integer",
          "description": "TCP port on which the database is available - must be between 10000 and 19999. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "privateEndpoint": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of which private endpoints can to access the database per region, uses region name as key.\n"
        },
        "publicEndpoint": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of which public endpoints can to access the database per region, uses region name as key.\n"
        },
        "subscriptionId": {
          "type": "string",
          "description": "The ID of the Active-Active subscription to create the database in. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "supportOssClusterApi": {
          "type": "boolean",
          "description": "Support Redis open-source (OSS) Cluster API. Default: ‘false’\n"
        }
      },
      "type": "object",
      "required": [
        "dbId",
        "globalPassword",
        "memoryLimitInGb",
        "name",
        "privateEndpoint",
        "publicEndpoint",
        "subscriptionId"
      ],
      "inputProperties": {
        "clientSslCertificate": {
          "type": "string",
          "description": "SSL certificate to authenticate user connections.\n"
        },
        "dataEviction": {
          "type": "string",
          "description": "The data items eviction policy (either: 'allkeys-lru', 'allkeys-lfu', 'allkeys-random', 'volatile-lru', 'volatile-lfu', 'volatile-random', 'volatile-ttl' or 'noeviction'. Default: 'volatile-lru')\n"
        },
        "enableTls": {
          "type": "boolean",
          "description": "Use TLS for authentication. Default: ‘false’\n"
        },
        "externalEndpointForOssClusterApi": {
          "type": "boolean",
          "description": "Should use the external endpoint for open-source (OSS) Cluster API.\nCan only be enabled if OSS Cluster API support is enabled. Default: 'false'\n"
        },
        "globalAlerts": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FActiveActiveSubscriptionDatabaseGlobalAlert:ActiveActiveSubscriptionDatabaseGlobalAlert"
          },
          "description": "A block defining Redis database alert of regions that don't override global settings, documented below, can be specified multiple times. (either: 'dataset-size', 'datasets-size', 'throughput-higher-than', 'throughput-lower-than', 'latency', 'syncsource-error', 'syncsource-lag' or 'connections-limit')\n"
        },
        "globalDataPersistence": {
          "type": "string",
          "description": "Global rate of database data persistence (in persistent storage) of regions that dont override global settings. Default: 'none'\n"
        },
        "globalPassword": {
          "type": "string",
          "description": "Password to access the database of regions that don't override global settings. If left empty, the password will be generated automatically\n",
          "secret": true
        },
        "globalSourceIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of source IP addresses or subnet masks of regions that don't override global settings. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'])\n"
        },
        "memoryLimitInGb": {
          "type": "number",
          "description": "Maximum memory usage for this specific database, including replication and other overhead\n"
        },
        "name": {
          "type": "string",
          "description": "A meaningful name to identify the database. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "overrideRegions": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FActiveActiveSubscriptionDatabaseOverrideRegion:ActiveActiveSubscriptionDatabaseOverrideRegion"
          },
          "description": "Override region specific configuration, documented below\n"
        },
        "port": {
          "type": "integer",
          "description": "TCP port on which the database is available - must be between 10000 and 19999. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "subscriptionId": {
          "type": "string",
          "description": "The ID of the Active-Active subscription to create the database in. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "supportOssClusterApi": {
          "type": "boolean",
          "description": "Support Redis open-source (OSS) Cluster API. Default: ‘false’\n"
        }
      },
      "requiredInputs": [
        "memoryLimitInGb",
        "subscriptionId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ActiveActiveSubscriptionDatabase resources.\n",
        "properties": {
          "clientSslCertificate": {
            "type": "string",
            "description": "SSL certificate to authenticate user connections.\n"
          },
          "dataEviction": {
            "type": "string",
            "description": "The data items eviction policy (either: 'allkeys-lru', 'allkeys-lfu', 'allkeys-random', 'volatile-lru', 'volatile-lfu', 'volatile-random', 'volatile-ttl' or 'noeviction'. Default: 'volatile-lru')\n"
          },
          "dbId": {
            "type": "integer",
            "description": "Identifier of the database created\n"
          },
          "enableTls": {
            "type": "boolean",
            "description": "Use TLS for authentication. Default: ‘false’\n"
          },
          "externalEndpointForOssClusterApi": {
            "type": "boolean",
            "description": "Should use the external endpoint for open-source (OSS) Cluster API.\nCan only be enabled if OSS Cluster API support is enabled. Default: 'false'\n"
          },
          "globalAlerts": {
            "type": "array",
            "items": {
              "$ref": "#/types/rediscloud:index%2FActiveActiveSubscriptionDatabaseGlobalAlert:ActiveActiveSubscriptionDatabaseGlobalAlert"
            },
            "description": "A block defining Redis database alert of regions that don't override global settings, documented below, can be specified multiple times. (either: 'dataset-size', 'datasets-size', 'throughput-higher-than', 'throughput-lower-than', 'latency', 'syncsource-error', 'syncsource-lag' or 'connections-limit')\n"
          },
          "globalDataPersistence": {
            "type": "string",
            "description": "Global rate of database data persistence (in persistent storage) of regions that dont override global settings. Default: 'none'\n"
          },
          "globalPassword": {
            "type": "string",
            "description": "Password to access the database of regions that don't override global settings. If left empty, the password will be generated automatically\n",
            "secret": true
          },
          "globalSourceIps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of source IP addresses or subnet masks of regions that don't override global settings. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'])\n"
          },
          "memoryLimitInGb": {
            "type": "number",
            "description": "Maximum memory usage for this specific database, including replication and other overhead\n"
          },
          "name": {
            "type": "string",
            "description": "A meaningful name to identify the database. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "overrideRegions": {
            "type": "array",
            "items": {
              "$ref": "#/types/rediscloud:index%2FActiveActiveSubscriptionDatabaseOverrideRegion:ActiveActiveSubscriptionDatabaseOverrideRegion"
            },
            "description": "Override region specific configuration, documented below\n"
          },
          "port": {
            "type": "integer",
            "description": "TCP port on which the database is available - must be between 10000 and 19999. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "privateEndpoint": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of which private endpoints can to access the database per region, uses region name as key.\n"
          },
          "publicEndpoint": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of which public endpoints can to access the database per region, uses region name as key.\n"
          },
          "subscriptionId": {
            "type": "string",
            "description": "The ID of the Active-Active subscription to create the database in. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "supportOssClusterApi": {
            "type": "boolean",
            "description": "Support Redis open-source (OSS) Cluster API. Default: ‘false’\n"
          }
        },
        "type": "object"
      }
    },
    "rediscloud:index/activeActiveSubscriptionPeering:ActiveActiveSubscriptionPeering": {
      "description": "Creates an AWS or GCP VPC peering for an existing Redis Enterprise Cloud Active-Active Subscription, allowing access to your subscription databases as if they were on the same network.\n\nFor AWS, peering should be accepted by the other side.\nFor GCP, the opposite peering request should be submitted.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### AWS\n\nThe following example shows how an Active-Active subscription can be peered with an AWS VPC using the rediscloud and AWS providers.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as rediscloud from \"@rediscloud/pulumi-rediscloud\";\n\nconst subscription_resource = new rediscloud.ActiveActiveSubscription(\"subscription-resource\", {});\n// ...\nconst peering_resource = new rediscloud.ActiveActiveSubscriptionPeering(\"peering-resource\", {\n    subscriptionId: subscription_resource.id,\n    sourceRegion: \"us-east-1\",\n    destinationRegion: \"eu-west-2\",\n    awsAccountId: \"123456789012\",\n    vpcId: \"vpc-01234567890\",\n    vpcCidr: \"10.0.10.0/24\",\n});\nconst aws_peering_resource = new aws.ec2.VpcPeeringConnectionAccepter(\"aws-peering-resource\", {\n    vpcPeeringConnectionId: peering_resource.awsPeeringId,\n    autoAccept: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_rediscloud as rediscloud\n\nsubscription_resource = rediscloud.ActiveActiveSubscription(\"subscription-resource\")\n# ...\npeering_resource = rediscloud.ActiveActiveSubscriptionPeering(\"peering-resource\",\n    subscription_id=subscription_resource.id,\n    source_region=\"us-east-1\",\n    destination_region=\"eu-west-2\",\n    aws_account_id=\"123456789012\",\n    vpc_id=\"vpc-01234567890\",\n    vpc_cidr=\"10.0.10.0/24\")\naws_peering_resource = aws.ec2.VpcPeeringConnectionAccepter(\"aws-peering-resource\",\n    vpc_peering_connection_id=peering_resource.aws_peering_id,\n    auto_accept=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Rediscloud = RedisLabs.Rediscloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var subscription_resource = new Rediscloud.ActiveActiveSubscription(\"subscription-resource\");\n\n    // ...\n    var peering_resource = new Rediscloud.ActiveActiveSubscriptionPeering(\"peering-resource\", new()\n    {\n        SubscriptionId = subscription_resource.Id,\n        SourceRegion = \"us-east-1\",\n        DestinationRegion = \"eu-west-2\",\n        AwsAccountId = \"123456789012\",\n        VpcId = \"vpc-01234567890\",\n        VpcCidr = \"10.0.10.0/24\",\n    });\n\n    var aws_peering_resource = new Aws.Ec2.VpcPeeringConnectionAccepter(\"aws-peering-resource\", new()\n    {\n        VpcPeeringConnectionId = peering_resource.AwsPeeringId,\n        AutoAccept = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rediscloud.NewActiveActiveSubscription(ctx, \"subscription-resource\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rediscloud.NewActiveActiveSubscriptionPeering(ctx, \"peering-resource\", &rediscloud.ActiveActiveSubscriptionPeeringArgs{\n\t\t\tSubscriptionId:    subscription_resource.ID(),\n\t\t\tSourceRegion:      pulumi.String(\"us-east-1\"),\n\t\t\tDestinationRegion: pulumi.String(\"eu-west-2\"),\n\t\t\tAwsAccountId:      pulumi.String(\"123456789012\"),\n\t\t\tVpcId:             pulumi.String(\"vpc-01234567890\"),\n\t\t\tVpcCidr:           pulumi.String(\"10.0.10.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewVpcPeeringConnectionAccepter(ctx, \"aws-peering-resource\", &ec2.VpcPeeringConnectionAccepterArgs{\n\t\t\tVpcPeeringConnectionId: peering_resource.AwsPeeringId,\n\t\t\tAutoAccept:             pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.ActiveActiveSubscription;\nimport com.pulumi.rediscloud.ActiveActiveSubscriptionPeering;\nimport com.pulumi.rediscloud.ActiveActiveSubscriptionPeeringArgs;\nimport com.pulumi.aws.ec2.VpcPeeringConnectionAccepter;\nimport com.pulumi.aws.ec2.VpcPeeringConnectionAccepterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var subscription_resource = new ActiveActiveSubscription(\"subscription-resource\");\n\n        var peering_resource = new ActiveActiveSubscriptionPeering(\"peering-resource\", ActiveActiveSubscriptionPeeringArgs.builder()        \n            .subscriptionId(subscription_resource.id())\n            .sourceRegion(\"us-east-1\")\n            .destinationRegion(\"eu-west-2\")\n            .awsAccountId(\"123456789012\")\n            .vpcId(\"vpc-01234567890\")\n            .vpcCidr(\"10.0.10.0/24\")\n            .build());\n\n        var aws_peering_resource = new VpcPeeringConnectionAccepter(\"aws-peering-resource\", VpcPeeringConnectionAccepterArgs.builder()        \n            .vpcPeeringConnectionId(peering_resource.awsPeeringId())\n            .autoAccept(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  subscription-resource:\n    type: rediscloud:ActiveActiveSubscription\n  peering-resource:\n    type: rediscloud:ActiveActiveSubscriptionPeering\n    properties:\n      subscriptionId: ${[\"subscription-resource\"].id}\n      sourceRegion: us-east-1\n      destinationRegion: eu-west-2\n      awsAccountId: '123456789012'\n      vpcId: vpc-01234567890\n      vpcCidr: 10.0.10.0/24\n  aws-peering-resource:\n    type: aws:ec2:VpcPeeringConnectionAccepter\n    properties:\n      vpcPeeringConnectionId: ${[\"peering-resource\"].awsPeeringId}\n      autoAccept: true\n```\n{{% /example %}}\n{{% example %}}\n### GCP\n\nThe following example shows how an Active-Active subscription can be peered with a GCP project network using the rediscloud and google providers.\nThe example HCL locates the network details and creates/accepts the vpc peering connection through the Google provider.   \n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as rediscloud from \"@rediscloud/pulumi-rediscloud\";\n\nconst subscription_resource = new rediscloud.ActiveActiveSubscription(\"subscription-resource\", {});\n// ...\nconst network = gcp.compute.getNetwork({\n    project: \"my-gcp-project\",\n    name: \"my-gcp-vpc\",\n});\nconst peering_resource = new rediscloud.ActiveActiveSubscriptionPeering(\"peering-resource\", {\n    subscriptionId: subscription_resource.id,\n    sourceRegion: \"us-central1\",\n    providerName: \"GCP\",\n    gcpProjectId: network.then(network => network.project),\n    gcpNetworkName: network.then(network => network.name),\n});\nconst gcp_peering_resource = new gcp.compute.NetworkPeering(\"gcp-peering-resource\", {\n    network: network.then(network => network.selfLink),\n    peerNetwork: pulumi.interpolate`https://www.googleapis.com/compute/v1/projects/${peering_resource.gcpRedisProjectId}/global/networks/${rediscloud_active_active_subscription_peering.example.gcp_redis_network_name}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_rediscloud as rediscloud\n\nsubscription_resource = rediscloud.ActiveActiveSubscription(\"subscription-resource\")\n# ...\nnetwork = gcp.compute.get_network(project=\"my-gcp-project\",\n    name=\"my-gcp-vpc\")\npeering_resource = rediscloud.ActiveActiveSubscriptionPeering(\"peering-resource\",\n    subscription_id=subscription_resource.id,\n    source_region=\"us-central1\",\n    provider_name=\"GCP\",\n    gcp_project_id=network.project,\n    gcp_network_name=network.name)\ngcp_peering_resource = gcp.compute.NetworkPeering(\"gcp-peering-resource\",\n    network=network.self_link,\n    peer_network=peering_resource.gcp_redis_project_id.apply(lambda gcp_redis_project_id: f\"https://www.googleapis.com/compute/v1/projects/{gcp_redis_project_id}/global/networks/{rediscloud_active_active_subscription_peering['example']['gcp_redis_network_name']}\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Rediscloud = RedisLabs.Rediscloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var subscription_resource = new Rediscloud.ActiveActiveSubscription(\"subscription-resource\");\n\n    // ...\n    var network = Gcp.Compute.GetNetwork.Invoke(new()\n    {\n        Project = \"my-gcp-project\",\n        Name = \"my-gcp-vpc\",\n    });\n\n    var peering_resource = new Rediscloud.ActiveActiveSubscriptionPeering(\"peering-resource\", new()\n    {\n        SubscriptionId = subscription_resource.Id,\n        SourceRegion = \"us-central1\",\n        ProviderName = \"GCP\",\n        GcpProjectId = network.Apply(getNetworkResult => getNetworkResult.Project),\n        GcpNetworkName = network.Apply(getNetworkResult => getNetworkResult.Name),\n    });\n\n    var gcp_peering_resource = new Gcp.Compute.NetworkPeering(\"gcp-peering-resource\", new()\n    {\n        Network = network.Apply(getNetworkResult => getNetworkResult.SelfLink),\n        PeerNetwork = peering_resource.GcpRedisProjectId.Apply(gcpRedisProjectId => $\"https://www.googleapis.com/compute/v1/projects/{gcpRedisProjectId}/global/networks/{rediscloud_active_active_subscription_peering.Example.Gcp_redis_network_name}\"),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rediscloud.NewActiveActiveSubscription(ctx, \"subscription-resource\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork, err := compute.LookupNetwork(ctx, &compute.LookupNetworkArgs{\n\t\t\tProject: pulumi.StringRef(\"my-gcp-project\"),\n\t\t\tName:    \"my-gcp-vpc\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rediscloud.NewActiveActiveSubscriptionPeering(ctx, \"peering-resource\", &rediscloud.ActiveActiveSubscriptionPeeringArgs{\n\t\t\tSubscriptionId: subscription_resource.ID(),\n\t\t\tSourceRegion:   pulumi.String(\"us-central1\"),\n\t\t\tProviderName:   pulumi.String(\"GCP\"),\n\t\t\tGcpProjectId:   *pulumi.String(network.Project),\n\t\t\tGcpNetworkName: *pulumi.String(network.Name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewNetworkPeering(ctx, \"gcp-peering-resource\", &compute.NetworkPeeringArgs{\n\t\t\tNetwork: *pulumi.String(network.SelfLink),\n\t\t\tPeerNetwork: peering_resource.GcpRedisProjectId.ApplyT(func(gcpRedisProjectId string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"https://www.googleapis.com/compute/v1/projects/%v/global/networks/%v\", gcpRedisProjectId, rediscloud_active_active_subscription_peering.Example.Gcp_redis_network_name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.ActiveActiveSubscription;\nimport com.pulumi.gcp.compute.ComputeFunctions;\nimport com.pulumi.gcp.compute.inputs.GetNetworkArgs;\nimport com.pulumi.rediscloud.ActiveActiveSubscriptionPeering;\nimport com.pulumi.rediscloud.ActiveActiveSubscriptionPeeringArgs;\nimport com.pulumi.gcp.compute.NetworkPeering;\nimport com.pulumi.gcp.compute.NetworkPeeringArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var subscription_resource = new ActiveActiveSubscription(\"subscription-resource\");\n\n        final var network = ComputeFunctions.getNetwork(GetNetworkArgs.builder()\n            .project(\"my-gcp-project\")\n            .name(\"my-gcp-vpc\")\n            .build());\n\n        var peering_resource = new ActiveActiveSubscriptionPeering(\"peering-resource\", ActiveActiveSubscriptionPeeringArgs.builder()        \n            .subscriptionId(subscription_resource.id())\n            .sourceRegion(\"us-central1\")\n            .providerName(\"GCP\")\n            .gcpProjectId(network.applyValue(getNetworkResult -> getNetworkResult.project()))\n            .gcpNetworkName(network.applyValue(getNetworkResult -> getNetworkResult.name()))\n            .build());\n\n        var gcp_peering_resource = new NetworkPeering(\"gcp-peering-resource\", NetworkPeeringArgs.builder()        \n            .network(network.applyValue(getNetworkResult -> getNetworkResult.selfLink()))\n            .peerNetwork(peering_resource.gcpRedisProjectId().applyValue(gcpRedisProjectId -> String.format(\"https://www.googleapis.com/compute/v1/projects/%s/global/networks/%s\", gcpRedisProjectId,rediscloud_active_active_subscription_peering.example().gcp_redis_network_name())))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  subscription-resource:\n    type: rediscloud:ActiveActiveSubscription\n  peering-resource:\n    type: rediscloud:ActiveActiveSubscriptionPeering\n    properties:\n      subscriptionId: ${[\"subscription-resource\"].id}\n      sourceRegion: us-central1\n      providerName: GCP\n      gcpProjectId: ${network.project}\n      gcpNetworkName: ${network.name}\n  gcp-peering-resource:\n    type: gcp:compute:NetworkPeering\n    properties:\n      network: ${network.selfLink}\n      peerNetwork: https://www.googleapis.com/compute/v1/projects/${[\"peering-resource\"].gcpRedisProjectId}/global/networks/${rediscloud_active_active_subscription_peering.example.gcp_redis_network_name}\nvariables:\n  network:\n    fn::invoke:\n      Function: gcp:compute:getNetwork\n      Arguments:\n        project: my-gcp-project\n        name: my-gcp-vpc\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`rediscloud_active_active_subscription_peering` can be imported using the ID of the Active-Active subscription and the ID of the peering connection, e.g.\n\n```sh\n $ pulumi import rediscloud:index/activeActiveSubscriptionPeering:ActiveActiveSubscriptionPeering peering-resource 12345678/1234\n```\n ",
      "properties": {
        "awsAccountId": {
          "type": "string",
          "description": "AWS account ID that the VPC to be peered lives in. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "awsPeeringId": {
          "type": "string",
          "description": "Identifier of the AWS cloud peering\n"
        },
        "destinationRegion": {
          "type": "string",
          "description": "Name of the region to create the VPC peering to. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "gcpNetworkName": {
          "type": "string",
          "description": "The name of the network to be peered. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "gcpPeeringId": {
          "type": "string",
          "description": "Identifier of the cloud peering\n"
        },
        "gcpProjectId": {
          "type": "string",
          "description": "GCP project ID that the VPC to be peered lives in. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "gcpRedisNetworkName": {
          "type": "string",
          "description": "The name of the Redis Enterprise Cloud network to be peered\n"
        },
        "gcpRedisProjectId": {
          "type": "string",
          "description": "Identifier of the Redis Enterprise Cloud GCP project to be peered\n"
        },
        "providerName": {
          "type": "string",
          "description": "The cloud provider to use with the vpc peering, (either `AWS` or `GCP`). Default: ‘AWS’. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "sourceRegion": {
          "type": "string",
          "description": "Name of the region to create the VPC peering from. **Modifying this attribute will force creation of a new resource.**\n\n\n**AWS ONLY:**\n"
        },
        "status": {
          "type": "string",
          "description": "is set to the current status of the peering - `initiating-request`, `pending-acceptance`, `active`, `inactive` or `failed`.\n"
        },
        "subscriptionId": {
          "type": "string",
          "description": "A valid Active-Active subscription predefined in the current account. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "vpcCidr": {
          "type": "string",
          "description": "CIDR range of the VPC to be peered. Either this or `vpc_cidrs` must be specified. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "vpcCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "CIDR ranges of the VPC to be peered. Either this or `vpc_cidr` must be specified. **Modifying this attribute will force creation of a new resource.**\n\n**GCP ONLY:**\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Identifier of the VPC to be peered. **Modifying this attribute will force creation of a new resource.**\n"
        }
      },
      "type": "object",
      "required": [
        "awsAccountId",
        "awsPeeringId",
        "destinationRegion",
        "gcpNetworkName",
        "gcpPeeringId",
        "gcpProjectId",
        "gcpRedisNetworkName",
        "gcpRedisProjectId",
        "sourceRegion",
        "status",
        "subscriptionId",
        "vpcCidr",
        "vpcCidrs",
        "vpcId"
      ],
      "inputProperties": {
        "awsAccountId": {
          "type": "string",
          "description": "AWS account ID that the VPC to be peered lives in. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "destinationRegion": {
          "type": "string",
          "description": "Name of the region to create the VPC peering to. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "gcpNetworkName": {
          "type": "string",
          "description": "The name of the network to be peered. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "gcpProjectId": {
          "type": "string",
          "description": "GCP project ID that the VPC to be peered lives in. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "providerName": {
          "type": "string",
          "description": "The cloud provider to use with the vpc peering, (either `AWS` or `GCP`). Default: ‘AWS’. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "sourceRegion": {
          "type": "string",
          "description": "Name of the region to create the VPC peering from. **Modifying this attribute will force creation of a new resource.**\n\n\n**AWS ONLY:**\n",
          "willReplaceOnChanges": true
        },
        "subscriptionId": {
          "type": "string",
          "description": "A valid Active-Active subscription predefined in the current account. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "vpcCidr": {
          "type": "string",
          "description": "CIDR range of the VPC to be peered. Either this or `vpc_cidrs` must be specified. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "vpcCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "CIDR ranges of the VPC to be peered. Either this or `vpc_cidr` must be specified. **Modifying this attribute will force creation of a new resource.**\n\n**GCP ONLY:**\n",
          "willReplaceOnChanges": true
        },
        "vpcId": {
          "type": "string",
          "description": "Identifier of the VPC to be peered. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "subscriptionId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ActiveActiveSubscriptionPeering resources.\n",
        "properties": {
          "awsAccountId": {
            "type": "string",
            "description": "AWS account ID that the VPC to be peered lives in. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "awsPeeringId": {
            "type": "string",
            "description": "Identifier of the AWS cloud peering\n"
          },
          "destinationRegion": {
            "type": "string",
            "description": "Name of the region to create the VPC peering to. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "gcpNetworkName": {
            "type": "string",
            "description": "The name of the network to be peered. **Modifying this attribute will force creation of a new resource.**\n"
          },
          "gcpPeeringId": {
            "type": "string",
            "description": "Identifier of the cloud peering\n"
          },
          "gcpProjectId": {
            "type": "string",
            "description": "GCP project ID that the VPC to be peered lives in. **Modifying this attribute will force creation of a new resource.**\n"
          },
          "gcpRedisNetworkName": {
            "type": "string",
            "description": "The name of the Redis Enterprise Cloud network to be peered\n"
          },
          "gcpRedisProjectId": {
            "type": "string",
            "description": "Identifier of the Redis Enterprise Cloud GCP project to be peered\n"
          },
          "providerName": {
            "type": "string",
            "description": "The cloud provider to use with the vpc peering, (either `AWS` or `GCP`). Default: ‘AWS’. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "sourceRegion": {
            "type": "string",
            "description": "Name of the region to create the VPC peering from. **Modifying this attribute will force creation of a new resource.**\n\n\n**AWS ONLY:**\n",
            "willReplaceOnChanges": true
          },
          "status": {
            "type": "string",
            "description": "is set to the current status of the peering - `initiating-request`, `pending-acceptance`, `active`, `inactive` or `failed`.\n"
          },
          "subscriptionId": {
            "type": "string",
            "description": "A valid Active-Active subscription predefined in the current account. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "vpcCidr": {
            "type": "string",
            "description": "CIDR range of the VPC to be peered. Either this or `vpc_cidrs` must be specified. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "vpcCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "CIDR ranges of the VPC to be peered. Either this or `vpc_cidr` must be specified. **Modifying this attribute will force creation of a new resource.**\n\n**GCP ONLY:**\n",
            "willReplaceOnChanges": true
          },
          "vpcId": {
            "type": "string",
            "description": "Identifier of the VPC to be peered. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "rediscloud:index/activeActiveSubscriptionRegions:ActiveActiveSubscriptionRegions": {
      "description": "Manages regions within your Redis Enterprise Cloud Active-Active subscription.\nThis resource is responsible for creating and managing regions within that subscription.\nThis allows Redis Enterprise Cloud to efficiently provision your cluster within each defined region in a separate block.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@rediscloud/pulumi-rediscloud\";\n\nconst regions_resource = new rediscloud.ActiveActiveSubscriptionRegions(\"regions-resource\", {\n    subscriptionId: rediscloud_active_active_subscription[\"subscription-resource\"].id,\n    deleteRegions: false,\n    regions: [\n        {\n            region: \"us-east-1\",\n            networkingDeploymentCidr: \"192.168.0.0/24\",\n            databases: [{\n                databaseId: rediscloud_active_active_subscription_database[\"database-resource\"].db_id,\n                databaseName: rediscloud_active_active_subscription_database[\"database-resource\"].name,\n                localWriteOperationsPerSecond: 1000,\n                localReadOperationsPerSecond: 1000,\n            }],\n        },\n        {\n            region: \"us-east-2\",\n            networkingDeploymentCidr: \"10.0.1.0/24\",\n            databases: [{\n                databaseId: rediscloud_active_active_subscription_database[\"database-resource\"].db_id,\n                databaseName: rediscloud_active_active_subscription_database[\"database-resource\"].name,\n                localWriteOperationsPerSecond: 2000,\n                localReadOperationsPerSecond: 4000,\n            }],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nregions_resource = rediscloud.ActiveActiveSubscriptionRegions(\"regions-resource\",\n    subscription_id=rediscloud_active_active_subscription[\"subscription-resource\"][\"id\"],\n    delete_regions=False,\n    regions=[\n        rediscloud.ActiveActiveSubscriptionRegionsRegionArgs(\n            region=\"us-east-1\",\n            networking_deployment_cidr=\"192.168.0.0/24\",\n            databases=[rediscloud.ActiveActiveSubscriptionRegionsRegionDatabaseArgs(\n                database_id=rediscloud_active_active_subscription_database[\"database-resource\"][\"db_id\"],\n                database_name=rediscloud_active_active_subscription_database[\"database-resource\"][\"name\"],\n                local_write_operations_per_second=1000,\n                local_read_operations_per_second=1000,\n            )],\n        ),\n        rediscloud.ActiveActiveSubscriptionRegionsRegionArgs(\n            region=\"us-east-2\",\n            networking_deployment_cidr=\"10.0.1.0/24\",\n            databases=[rediscloud.ActiveActiveSubscriptionRegionsRegionDatabaseArgs(\n                database_id=rediscloud_active_active_subscription_database[\"database-resource\"][\"db_id\"],\n                database_name=rediscloud_active_active_subscription_database[\"database-resource\"][\"name\"],\n                local_write_operations_per_second=2000,\n                local_read_operations_per_second=4000,\n            )],\n        ),\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = RedisLabs.Rediscloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var regions_resource = new Rediscloud.ActiveActiveSubscriptionRegions(\"regions-resource\", new()\n    {\n        SubscriptionId = rediscloud_active_active_subscription.Subscription_resource.Id,\n        DeleteRegions = false,\n        Regions = new[]\n        {\n            new Rediscloud.Inputs.ActiveActiveSubscriptionRegionsRegionArgs\n            {\n                Region = \"us-east-1\",\n                NetworkingDeploymentCidr = \"192.168.0.0/24\",\n                Databases = new[]\n                {\n                    new Rediscloud.Inputs.ActiveActiveSubscriptionRegionsRegionDatabaseArgs\n                    {\n                        DatabaseId = rediscloud_active_active_subscription_database.Database_resource.Db_id,\n                        DatabaseName = rediscloud_active_active_subscription_database.Database_resource.Name,\n                        LocalWriteOperationsPerSecond = 1000,\n                        LocalReadOperationsPerSecond = 1000,\n                    },\n                },\n            },\n            new Rediscloud.Inputs.ActiveActiveSubscriptionRegionsRegionArgs\n            {\n                Region = \"us-east-2\",\n                NetworkingDeploymentCidr = \"10.0.1.0/24\",\n                Databases = new[]\n                {\n                    new Rediscloud.Inputs.ActiveActiveSubscriptionRegionsRegionDatabaseArgs\n                    {\n                        DatabaseId = rediscloud_active_active_subscription_database.Database_resource.Db_id,\n                        DatabaseName = rediscloud_active_active_subscription_database.Database_resource.Name,\n                        LocalWriteOperationsPerSecond = 2000,\n                        LocalReadOperationsPerSecond = 4000,\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rediscloud.NewActiveActiveSubscriptionRegions(ctx, \"regions-resource\", &rediscloud.ActiveActiveSubscriptionRegionsArgs{\n\t\t\tSubscriptionId: pulumi.Any(rediscloud_active_active_subscription.SubscriptionResource.Id),\n\t\t\tDeleteRegions:  pulumi.Bool(false),\n\t\t\tRegions: rediscloud.ActiveActiveSubscriptionRegionsRegionArray{\n\t\t\t\t&rediscloud.ActiveActiveSubscriptionRegionsRegionArgs{\n\t\t\t\t\tRegion:                   pulumi.String(\"us-east-1\"),\n\t\t\t\t\tNetworkingDeploymentCidr: pulumi.String(\"192.168.0.0/24\"),\n\t\t\t\t\tDatabases: rediscloud.ActiveActiveSubscriptionRegionsRegionDatabaseArray{\n\t\t\t\t\t\t&rediscloud.ActiveActiveSubscriptionRegionsRegionDatabaseArgs{\n\t\t\t\t\t\t\tDatabaseId:                    pulumi.Any(rediscloud_active_active_subscription_database.DatabaseResource.Db_id),\n\t\t\t\t\t\t\tDatabaseName:                  pulumi.Any(rediscloud_active_active_subscription_database.DatabaseResource.Name),\n\t\t\t\t\t\t\tLocalWriteOperationsPerSecond: pulumi.Int(1000),\n\t\t\t\t\t\t\tLocalReadOperationsPerSecond:  pulumi.Int(1000),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&rediscloud.ActiveActiveSubscriptionRegionsRegionArgs{\n\t\t\t\t\tRegion:                   pulumi.String(\"us-east-2\"),\n\t\t\t\t\tNetworkingDeploymentCidr: pulumi.String(\"10.0.1.0/24\"),\n\t\t\t\t\tDatabases: rediscloud.ActiveActiveSubscriptionRegionsRegionDatabaseArray{\n\t\t\t\t\t\t&rediscloud.ActiveActiveSubscriptionRegionsRegionDatabaseArgs{\n\t\t\t\t\t\t\tDatabaseId:                    pulumi.Any(rediscloud_active_active_subscription_database.DatabaseResource.Db_id),\n\t\t\t\t\t\t\tDatabaseName:                  pulumi.Any(rediscloud_active_active_subscription_database.DatabaseResource.Name),\n\t\t\t\t\t\t\tLocalWriteOperationsPerSecond: pulumi.Int(2000),\n\t\t\t\t\t\t\tLocalReadOperationsPerSecond:  pulumi.Int(4000),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.ActiveActiveSubscriptionRegions;\nimport com.pulumi.rediscloud.ActiveActiveSubscriptionRegionsArgs;\nimport com.pulumi.rediscloud.inputs.ActiveActiveSubscriptionRegionsRegionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var regions_resource = new ActiveActiveSubscriptionRegions(\"regions-resource\", ActiveActiveSubscriptionRegionsArgs.builder()        \n            .subscriptionId(rediscloud_active_active_subscription.subscription-resource().id())\n            .deleteRegions(false)\n            .regions(            \n                ActiveActiveSubscriptionRegionsRegionArgs.builder()\n                    .region(\"us-east-1\")\n                    .networkingDeploymentCidr(\"192.168.0.0/24\")\n                    .databases(ActiveActiveSubscriptionRegionsRegionDatabaseArgs.builder()\n                        .databaseId(rediscloud_active_active_subscription_database.database-resource().db_id())\n                        .databaseName(rediscloud_active_active_subscription_database.database-resource().name())\n                        .localWriteOperationsPerSecond(1000)\n                        .localReadOperationsPerSecond(1000)\n                        .build())\n                    .build(),\n                ActiveActiveSubscriptionRegionsRegionArgs.builder()\n                    .region(\"us-east-2\")\n                    .networkingDeploymentCidr(\"10.0.1.0/24\")\n                    .databases(ActiveActiveSubscriptionRegionsRegionDatabaseArgs.builder()\n                        .databaseId(rediscloud_active_active_subscription_database.database-resource().db_id())\n                        .databaseName(rediscloud_active_active_subscription_database.database-resource().name())\n                        .localWriteOperationsPerSecond(2000)\n                        .localReadOperationsPerSecond(4000)\n                        .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  regions-resource:\n    type: rediscloud:ActiveActiveSubscriptionRegions\n    properties:\n      subscriptionId: ${rediscloud_active_active_subscription\"subscription-resource\"[%!s(MISSING)].id}\n      deleteRegions: false\n      regions:\n        - region: us-east-1\n          networkingDeploymentCidr: 192.168.0.0/24\n          databases:\n            - databaseId: ${rediscloud_active_active_subscription_database\"database-resource\"[%!s(MISSING)].db_id}\n              databaseName: ${rediscloud_active_active_subscription_database\"database-resource\"[%!s(MISSING)].name}\n              localWriteOperationsPerSecond: 1000\n              localReadOperationsPerSecond: 1000\n        - region: us-east-2\n          networkingDeploymentCidr: 10.0.1.0/24\n          databases:\n            - databaseId: ${rediscloud_active_active_subscription_database\"database-resource\"[%!s(MISSING)].db_id}\n              databaseName: ${rediscloud_active_active_subscription_database\"database-resource\"[%!s(MISSING)].name}\n              localWriteOperationsPerSecond: 2000\n              localReadOperationsPerSecond: 4000\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`rediscloud_active_active_regions` can be imported using the ID of the subscription, e.g.\n\n```sh\n $ pulumi import rediscloud:index/activeActiveSubscriptionRegions:ActiveActiveSubscriptionRegions regions-resource 12345678\n```\n ",
      "properties": {
        "deleteRegions": {
          "type": "boolean",
          "description": "Flag required to be set when one or more regions is to be deleted, if the flag is not set an error will be thrown\n"
        },
        "regions": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FActiveActiveSubscriptionRegionsRegion:ActiveActiveSubscriptionRegionsRegion"
          },
          "description": "Cloud networking details, per region, documented below\n"
        },
        "subscriptionId": {
          "type": "string",
          "description": "ID of the subscription that the regions belong to. **Modifying this attribute will force creation of a new resource.**\n"
        }
      },
      "type": "object",
      "required": [
        "regions",
        "subscriptionId"
      ],
      "inputProperties": {
        "deleteRegions": {
          "type": "boolean",
          "description": "Flag required to be set when one or more regions is to be deleted, if the flag is not set an error will be thrown\n"
        },
        "regions": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FActiveActiveSubscriptionRegionsRegion:ActiveActiveSubscriptionRegionsRegion"
          },
          "description": "Cloud networking details, per region, documented below\n"
        },
        "subscriptionId": {
          "type": "string",
          "description": "ID of the subscription that the regions belong to. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "regions",
        "subscriptionId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ActiveActiveSubscriptionRegions resources.\n",
        "properties": {
          "deleteRegions": {
            "type": "boolean",
            "description": "Flag required to be set when one or more regions is to be deleted, if the flag is not set an error will be thrown\n"
          },
          "regions": {
            "type": "array",
            "items": {
              "$ref": "#/types/rediscloud:index%2FActiveActiveSubscriptionRegionsRegion:ActiveActiveSubscriptionRegionsRegion"
            },
            "description": "Cloud networking details, per region, documented below\n"
          },
          "subscriptionId": {
            "type": "string",
            "description": "ID of the subscription that the regions belong to. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "rediscloud:index/cloudAccount:CloudAccount": {
      "description": "Creates a Cloud Account resource representing the access credentials to a cloud provider account, (`AWS`).\nRedis Enterprise Cloud uses these credentials to provision databases within your infrastructure. \n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThe following example defines a new AWS Cloud Account that is then used with a Subscription.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@rediscloud/pulumi-rediscloud\";\n\nconst exampleCloudAccount = new rediscloud.CloudAccount(\"exampleCloudAccount\", {\n    accessKeyId: \"abcdefg\",\n    accessSecretKey: \"9876543\",\n    consoleUsername: \"username\",\n    consolePassword: \"password\",\n    providerType: \"AWS\",\n    signInLoginUrl: \"https://1234567890.signin.aws.amazon.com/console\",\n});\nconst exampleSubscription = new rediscloud.Subscription(\"exampleSubscription\", {\n    paymentMethodId: data.rediscloud_payment_method.card.id,\n    memoryStorage: \"ram\",\n    cloudProvider: {\n        provider: exampleCloudAccount.providerType,\n        cloudAccountId: exampleCloudAccount.id,\n    },\n});\n// ...\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nexample_cloud_account = rediscloud.CloudAccount(\"exampleCloudAccount\",\n    access_key_id=\"abcdefg\",\n    access_secret_key=\"9876543\",\n    console_username=\"username\",\n    console_password=\"password\",\n    provider_type=\"AWS\",\n    sign_in_login_url=\"https://1234567890.signin.aws.amazon.com/console\")\nexample_subscription = rediscloud.Subscription(\"exampleSubscription\",\n    payment_method_id=data[\"rediscloud_payment_method\"][\"card\"][\"id\"],\n    memory_storage=\"ram\",\n    cloud_provider=rediscloud.SubscriptionCloudProviderArgs(\n        provider=example_cloud_account.provider_type,\n        cloud_account_id=example_cloud_account.id,\n    ))\n# ...\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = RedisLabs.Rediscloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleCloudAccount = new Rediscloud.CloudAccount(\"exampleCloudAccount\", new()\n    {\n        AccessKeyId = \"abcdefg\",\n        AccessSecretKey = \"9876543\",\n        ConsoleUsername = \"username\",\n        ConsolePassword = \"password\",\n        ProviderType = \"AWS\",\n        SignInLoginUrl = \"https://1234567890.signin.aws.amazon.com/console\",\n    });\n\n    var exampleSubscription = new Rediscloud.Subscription(\"exampleSubscription\", new()\n    {\n        PaymentMethodId = data.Rediscloud_payment_method.Card.Id,\n        MemoryStorage = \"ram\",\n        CloudProvider = new Rediscloud.Inputs.SubscriptionCloudProviderArgs\n        {\n            Provider = exampleCloudAccount.ProviderType,\n            CloudAccountId = exampleCloudAccount.Id,\n        },\n    });\n\n    // ...\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleCloudAccount, err := rediscloud.NewCloudAccount(ctx, \"exampleCloudAccount\", &rediscloud.CloudAccountArgs{\n\t\t\tAccessKeyId:     pulumi.String(\"abcdefg\"),\n\t\t\tAccessSecretKey: pulumi.String(\"9876543\"),\n\t\t\tConsoleUsername: pulumi.String(\"username\"),\n\t\t\tConsolePassword: pulumi.String(\"password\"),\n\t\t\tProviderType:    pulumi.String(\"AWS\"),\n\t\t\tSignInLoginUrl:  pulumi.String(\"https://1234567890.signin.aws.amazon.com/console\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rediscloud.NewSubscription(ctx, \"exampleSubscription\", &rediscloud.SubscriptionArgs{\n\t\t\tPaymentMethodId: pulumi.Any(data.Rediscloud_payment_method.Card.Id),\n\t\t\tMemoryStorage:   pulumi.String(\"ram\"),\n\t\t\tCloudProvider: &rediscloud.SubscriptionCloudProviderArgs{\n\t\t\t\tProvider:       exampleCloudAccount.ProviderType,\n\t\t\t\tCloudAccountId: exampleCloudAccount.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.CloudAccount;\nimport com.pulumi.rediscloud.CloudAccountArgs;\nimport com.pulumi.rediscloud.Subscription;\nimport com.pulumi.rediscloud.SubscriptionArgs;\nimport com.pulumi.rediscloud.inputs.SubscriptionCloudProviderArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleCloudAccount = new CloudAccount(\"exampleCloudAccount\", CloudAccountArgs.builder()        \n            .accessKeyId(\"abcdefg\")\n            .accessSecretKey(\"9876543\")\n            .consoleUsername(\"username\")\n            .consolePassword(\"password\")\n            .providerType(\"AWS\")\n            .signInLoginUrl(\"https://1234567890.signin.aws.amazon.com/console\")\n            .build());\n\n        var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()        \n            .paymentMethodId(data.rediscloud_payment_method().card().id())\n            .memoryStorage(\"ram\")\n            .cloudProvider(SubscriptionCloudProviderArgs.builder()\n                .provider(exampleCloudAccount.providerType())\n                .cloudAccountId(exampleCloudAccount.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleCloudAccount:\n    type: rediscloud:CloudAccount\n    properties:\n      accessKeyId: abcdefg\n      accessSecretKey: '9876543'\n      consoleUsername: username\n      consolePassword: password\n      providerType: AWS\n      signInLoginUrl: https://1234567890.signin.aws.amazon.com/console\n  exampleSubscription:\n    type: rediscloud:Subscription\n    properties:\n      paymentMethodId: ${data.rediscloud_payment_method.card.id}\n      memoryStorage: ram\n      cloudProvider:\n        provider: ${exampleCloudAccount.providerType}\n        cloudAccountId: ${exampleCloudAccount.id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`rediscloud_cloud_account` can be imported using the ID of the Cloud Account, e.g.\n\n```sh\n $ pulumi import rediscloud:index/cloudAccount:CloudAccount example 12345678\n```\n ",
      "properties": {
        "accessKeyId": {
          "type": "string",
          "description": "Cloud provider access key.\n"
        },
        "accessSecretKey": {
          "type": "string",
          "description": "Cloud provider secret key.\nNote that drift cannot currently be detected for this.\n",
          "secret": true
        },
        "consolePassword": {
          "type": "string",
          "description": "Cloud provider management console password.\nNote that drift cannot currently be detected for this.\n",
          "secret": true
        },
        "consoleUsername": {
          "type": "string",
          "description": "Cloud provider management console username.\nNote that drift cannot currently be detected for this.\n"
        },
        "name": {
          "type": "string",
          "description": "Display name of the account.\n"
        },
        "providerType": {
          "type": "string",
          "description": "Cloud provider type - either `AWS` or `GCP`.\nNote that drift cannot currently be detected for this. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "signInLoginUrl": {
          "type": "string",
          "description": "Cloud provider management console login URL.\nNote that drift cannot currently be detected for this.\n"
        },
        "status": {
          "type": "string",
          "description": "The current status of the account - `draft`, `pending` or `active`\n"
        }
      },
      "type": "object",
      "required": [
        "accessKeyId",
        "accessSecretKey",
        "consolePassword",
        "consoleUsername",
        "name",
        "providerType",
        "signInLoginUrl",
        "status"
      ],
      "inputProperties": {
        "accessKeyId": {
          "type": "string",
          "description": "Cloud provider access key.\n"
        },
        "accessSecretKey": {
          "type": "string",
          "description": "Cloud provider secret key.\nNote that drift cannot currently be detected for this.\n",
          "secret": true
        },
        "consolePassword": {
          "type": "string",
          "description": "Cloud provider management console password.\nNote that drift cannot currently be detected for this.\n",
          "secret": true
        },
        "consoleUsername": {
          "type": "string",
          "description": "Cloud provider management console username.\nNote that drift cannot currently be detected for this.\n"
        },
        "name": {
          "type": "string",
          "description": "Display name of the account.\n"
        },
        "providerType": {
          "type": "string",
          "description": "Cloud provider type - either `AWS` or `GCP`.\nNote that drift cannot currently be detected for this. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "signInLoginUrl": {
          "type": "string",
          "description": "Cloud provider management console login URL.\nNote that drift cannot currently be detected for this.\n"
        }
      },
      "requiredInputs": [
        "accessKeyId",
        "accessSecretKey",
        "consolePassword",
        "consoleUsername",
        "providerType",
        "signInLoginUrl"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CloudAccount resources.\n",
        "properties": {
          "accessKeyId": {
            "type": "string",
            "description": "Cloud provider access key.\n"
          },
          "accessSecretKey": {
            "type": "string",
            "description": "Cloud provider secret key.\nNote that drift cannot currently be detected for this.\n",
            "secret": true
          },
          "consolePassword": {
            "type": "string",
            "description": "Cloud provider management console password.\nNote that drift cannot currently be detected for this.\n",
            "secret": true
          },
          "consoleUsername": {
            "type": "string",
            "description": "Cloud provider management console username.\nNote that drift cannot currently be detected for this.\n"
          },
          "name": {
            "type": "string",
            "description": "Display name of the account.\n"
          },
          "providerType": {
            "type": "string",
            "description": "Cloud provider type - either `AWS` or `GCP`.\nNote that drift cannot currently be detected for this. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "signInLoginUrl": {
            "type": "string",
            "description": "Cloud provider management console login URL.\nNote that drift cannot currently be detected for this.\n"
          },
          "status": {
            "type": "string",
            "description": "The current status of the account - `draft`, `pending` or `active`\n"
          }
        },
        "type": "object"
      }
    },
    "rediscloud:index/subscription:Subscription": {
      "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@pulumi/rediscloud\";\nimport * as rediscloud from \"@rediscloud/pulumi-rediscloud\";\n\nconst card = rediscloud.getPaymentMethod({\n    cardType: \"Visa\",\n});\nconst subscription_resource = new rediscloud.Subscription(\"subscription-resource\", {\n    paymentMethod: \"credit-card\",\n    paymentMethodId: card.then(card => card.id),\n    memoryStorage: \"ram\",\n    cloudProvider: {\n        provider: data.rediscloud_cloud_account.account.provider_type,\n        regions: [{\n            region: \"eu-west-1\",\n            multipleAvailabilityZones: true,\n            networkingDeploymentCidr: \"10.0.0.0/24\",\n            preferredAvailabilityZones: [\"euw1-az1, euw1-az2, euw1-az3\"],\n        }],\n    },\n    creationPlan: {\n        memoryLimitInGb: 15,\n        quantity: 1,\n        replication: true,\n        throughputMeasurementBy: \"operations-per-second\",\n        throughputMeasurementValue: 20000,\n        modules: [\"RedisJSON\"],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\ncard = rediscloud.get_payment_method(card_type=\"Visa\")\nsubscription_resource = rediscloud.Subscription(\"subscription-resource\",\n    payment_method=\"credit-card\",\n    payment_method_id=card.id,\n    memory_storage=\"ram\",\n    cloud_provider=rediscloud.SubscriptionCloudProviderArgs(\n        provider=data[\"rediscloud_cloud_account\"][\"account\"][\"provider_type\"],\n        regions=[rediscloud.SubscriptionCloudProviderRegionArgs(\n            region=\"eu-west-1\",\n            multiple_availability_zones=True,\n            networking_deployment_cidr=\"10.0.0.0/24\",\n            preferred_availability_zones=[\"euw1-az1, euw1-az2, euw1-az3\"],\n        )],\n    ),\n    creation_plan=rediscloud.SubscriptionCreationPlanArgs(\n        memory_limit_in_gb=15,\n        quantity=1,\n        replication=True,\n        throughput_measurement_by=\"operations-per-second\",\n        throughput_measurement_value=20000,\n        modules=[\"RedisJSON\"],\n    ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = Pulumi.Rediscloud;\nusing Rediscloud = RedisLabs.Rediscloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var card = Rediscloud.GetPaymentMethod.Invoke(new()\n    {\n        CardType = \"Visa\",\n    });\n\n    var subscription_resource = new Rediscloud.Subscription(\"subscription-resource\", new()\n    {\n        PaymentMethod = \"credit-card\",\n        PaymentMethodId = card.Apply(getPaymentMethodResult => getPaymentMethodResult.Id),\n        MemoryStorage = \"ram\",\n        CloudProvider = new Rediscloud.Inputs.SubscriptionCloudProviderArgs\n        {\n            Provider = data.Rediscloud_cloud_account.Account.Provider_type,\n            Regions = new[]\n            {\n                new Rediscloud.Inputs.SubscriptionCloudProviderRegionArgs\n                {\n                    Region = \"eu-west-1\",\n                    MultipleAvailabilityZones = true,\n                    NetworkingDeploymentCidr = \"10.0.0.0/24\",\n                    PreferredAvailabilityZones = new[]\n                    {\n                        \"euw1-az1, euw1-az2, euw1-az3\",\n                    },\n                },\n            },\n        },\n        CreationPlan = new Rediscloud.Inputs.SubscriptionCreationPlanArgs\n        {\n            MemoryLimitInGb = 15,\n            Quantity = 1,\n            Replication = true,\n            ThroughputMeasurementBy = \"operations-per-second\",\n            ThroughputMeasurementValue = 20000,\n            Modules = new[]\n            {\n                \"RedisJSON\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcard, err := rediscloud.GetPaymentMethod(ctx, &rediscloud.GetPaymentMethodArgs{\n\t\t\tCardType: pulumi.StringRef(\"Visa\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rediscloud.NewSubscription(ctx, \"subscription-resource\", &rediscloud.SubscriptionArgs{\n\t\t\tPaymentMethod:   pulumi.String(\"credit-card\"),\n\t\t\tPaymentMethodId: *pulumi.String(card.Id),\n\t\t\tMemoryStorage:   pulumi.String(\"ram\"),\n\t\t\tCloudProvider: &rediscloud.SubscriptionCloudProviderArgs{\n\t\t\t\tProvider: pulumi.Any(data.Rediscloud_cloud_account.Account.Provider_type),\n\t\t\t\tRegions: rediscloud.SubscriptionCloudProviderRegionArray{\n\t\t\t\t\t&rediscloud.SubscriptionCloudProviderRegionArgs{\n\t\t\t\t\t\tRegion:                    pulumi.String(\"eu-west-1\"),\n\t\t\t\t\t\tMultipleAvailabilityZones: pulumi.Bool(true),\n\t\t\t\t\t\tNetworkingDeploymentCidr:  pulumi.String(\"10.0.0.0/24\"),\n\t\t\t\t\t\tPreferredAvailabilityZones: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"euw1-az1, euw1-az2, euw1-az3\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tCreationPlan: &rediscloud.SubscriptionCreationPlanArgs{\n\t\t\t\tMemoryLimitInGb:            pulumi.Float64(15),\n\t\t\t\tQuantity:                   pulumi.Int(1),\n\t\t\t\tReplication:                pulumi.Bool(true),\n\t\t\t\tThroughputMeasurementBy:    pulumi.String(\"operations-per-second\"),\n\t\t\t\tThroughputMeasurementValue: pulumi.Int(20000),\n\t\t\t\tModules: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"RedisJSON\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.RediscloudFunctions;\nimport com.pulumi.rediscloud.inputs.GetPaymentMethodArgs;\nimport com.pulumi.rediscloud.Subscription;\nimport com.pulumi.rediscloud.SubscriptionArgs;\nimport com.pulumi.rediscloud.inputs.SubscriptionCloudProviderArgs;\nimport com.pulumi.rediscloud.inputs.SubscriptionCreationPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var card = RediscloudFunctions.getPaymentMethod(GetPaymentMethodArgs.builder()\n            .cardType(\"Visa\")\n            .build());\n\n        var subscription_resource = new Subscription(\"subscription-resource\", SubscriptionArgs.builder()        \n            .paymentMethod(\"credit-card\")\n            .paymentMethodId(card.applyValue(getPaymentMethodResult -> getPaymentMethodResult.id()))\n            .memoryStorage(\"ram\")\n            .cloudProvider(SubscriptionCloudProviderArgs.builder()\n                .provider(data.rediscloud_cloud_account().account().provider_type())\n                .regions(SubscriptionCloudProviderRegionArgs.builder()\n                    .region(\"eu-west-1\")\n                    .multipleAvailabilityZones(true)\n                    .networkingDeploymentCidr(\"10.0.0.0/24\")\n                    .preferredAvailabilityZones(\"euw1-az1, euw1-az2, euw1-az3\")\n                    .build())\n                .build())\n            .creationPlan(SubscriptionCreationPlanArgs.builder()\n                .memoryLimitInGb(15)\n                .quantity(1)\n                .replication(true)\n                .throughputMeasurementBy(\"operations-per-second\")\n                .throughputMeasurementValue(20000)\n                .modules(\"RedisJSON\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  subscription-resource:\n    type: rediscloud:Subscription\n    properties:\n      paymentMethod: credit-card\n      paymentMethodId: ${card.id}\n      memoryStorage: ram\n      cloudProvider:\n        provider: ${data.rediscloud_cloud_account.account.provider_type}\n        regions:\n          - region: eu-west-1\n            multipleAvailabilityZones: true\n            networkingDeploymentCidr: 10.0.0.0/24\n            preferredAvailabilityZones:\n              - euw1-az1, euw1-az2, euw1-az3\n      creationPlan:\n        memoryLimitInGb: 15\n        quantity: 1\n        replication: true\n        throughputMeasurementBy: operations-per-second\n        throughputMeasurementValue: 20000\n        modules:\n          - RedisJSON\nvariables:\n  card:\n    fn::invoke:\n      Function: rediscloud:getPaymentMethod\n      Arguments:\n        cardType: Visa\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`rediscloud_subscription` can be imported using the ID of the subscription, e.g.\n\n```sh\n $ pulumi import rediscloud:index/subscription:Subscription subscription-resource 12345678\n```\n ~> __Note:__ the creation_plan block will be ignored during imports.\n\n",
      "properties": {
        "allowlist": {
          "$ref": "#/types/rediscloud:index%2FSubscriptionAllowlist:SubscriptionAllowlist",
          "description": "An allowlist object, documented below\n"
        },
        "cloudProvider": {
          "$ref": "#/types/rediscloud:index%2FSubscriptionCloudProvider:SubscriptionCloudProvider",
          "description": "A cloud provider object, documented below. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "creationPlan": {
          "$ref": "#/types/rediscloud:index%2FSubscriptionCreationPlan:SubscriptionCreationPlan",
          "description": "A creation plan object, documented below\n"
        },
        "memoryStorage": {
          "type": "string",
          "description": "Memory storage preference: either ‘ram’ or a combination of ‘ram-and-flash’. Default: ‘ram’. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "name": {
          "type": "string",
          "description": "A meaningful name to identify the subscription\n"
        },
        "paymentMethod": {
          "type": "string",
          "description": "The payment method for the requested subscription, (either `credit-card` or `marketplace`). If `credit-card` is specified, `payment_method_id` must be defined. Default: 'credit-card'. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "paymentMethodId": {
          "type": "string",
          "description": "A valid payment method pre-defined in the current account. This value is __Optional__ for AWS/GCP Marketplace accounts, but __Required__ for all other account types\n"
        }
      },
      "type": "object",
      "required": [
        "cloudProvider",
        "name",
        "paymentMethodId"
      ],
      "inputProperties": {
        "allowlist": {
          "$ref": "#/types/rediscloud:index%2FSubscriptionAllowlist:SubscriptionAllowlist",
          "description": "An allowlist object, documented below\n"
        },
        "cloudProvider": {
          "$ref": "#/types/rediscloud:index%2FSubscriptionCloudProvider:SubscriptionCloudProvider",
          "description": "A cloud provider object, documented below. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "creationPlan": {
          "$ref": "#/types/rediscloud:index%2FSubscriptionCreationPlan:SubscriptionCreationPlan",
          "description": "A creation plan object, documented below\n"
        },
        "memoryStorage": {
          "type": "string",
          "description": "Memory storage preference: either ‘ram’ or a combination of ‘ram-and-flash’. Default: ‘ram’. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "name": {
          "type": "string",
          "description": "A meaningful name to identify the subscription\n"
        },
        "paymentMethod": {
          "type": "string",
          "description": "The payment method for the requested subscription, (either `credit-card` or `marketplace`). If `credit-card` is specified, `payment_method_id` must be defined. Default: 'credit-card'. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "paymentMethodId": {
          "type": "string",
          "description": "A valid payment method pre-defined in the current account. This value is __Optional__ for AWS/GCP Marketplace accounts, but __Required__ for all other account types\n"
        }
      },
      "requiredInputs": [
        "cloudProvider"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Subscription resources.\n",
        "properties": {
          "allowlist": {
            "$ref": "#/types/rediscloud:index%2FSubscriptionAllowlist:SubscriptionAllowlist",
            "description": "An allowlist object, documented below\n"
          },
          "cloudProvider": {
            "$ref": "#/types/rediscloud:index%2FSubscriptionCloudProvider:SubscriptionCloudProvider",
            "description": "A cloud provider object, documented below. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "creationPlan": {
            "$ref": "#/types/rediscloud:index%2FSubscriptionCreationPlan:SubscriptionCreationPlan",
            "description": "A creation plan object, documented below\n"
          },
          "memoryStorage": {
            "type": "string",
            "description": "Memory storage preference: either ‘ram’ or a combination of ‘ram-and-flash’. Default: ‘ram’. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "name": {
            "type": "string",
            "description": "A meaningful name to identify the subscription\n"
          },
          "paymentMethod": {
            "type": "string",
            "description": "The payment method for the requested subscription, (either `credit-card` or `marketplace`). If `credit-card` is specified, `payment_method_id` must be defined. Default: 'credit-card'. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "paymentMethodId": {
            "type": "string",
            "description": "A valid payment method pre-defined in the current account. This value is __Optional__ for AWS/GCP Marketplace accounts, but __Required__ for all other account types\n"
          }
        },
        "type": "object"
      }
    },
    "rediscloud:index/subscriptionDatabase:SubscriptionDatabase": {
      "description": "Creates a Database within a specified Subscription in your Redis Enterprise Cloud Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@pulumi/rediscloud\";\nimport * as rediscloud from \"@rediscloud/pulumi-rediscloud\";\n\nconst card = rediscloud.getPaymentMethod({\n    cardType: \"Visa\",\n});\nconst subscription_resource = new rediscloud.Subscription(\"subscription-resource\", {\n    paymentMethod: \"credit-card\",\n    paymentMethodId: card.then(card => card.id),\n    memoryStorage: \"ram\",\n    cloudProvider: {\n        provider: data.rediscloud_cloud_account.account.provider_type,\n        regions: [{\n            region: \"eu-west-1\",\n            multipleAvailabilityZones: true,\n            networkingDeploymentCidr: \"10.0.0.0/24\",\n            preferredAvailabilityZones: [\"euw1-az1, euw1-az2, euw1-az3\"],\n        }],\n    },\n    creationPlan: {\n        memoryLimitInGb: 15,\n        quantity: 1,\n        replication: true,\n        throughputMeasurementBy: \"operations-per-second\",\n        throughputMeasurementValue: 20000,\n        modules: [\"RedisJSON\"],\n    },\n});\n// The primary database to provision\nconst database_resource = new rediscloud.SubscriptionDatabase(\"database-resource\", {\n    subscriptionId: subscription_resource.id,\n    memoryLimitInGb: 15,\n    dataPersistence: \"aof-every-write\",\n    throughputMeasurementBy: \"operations-per-second\",\n    throughputMeasurementValue: 20000,\n    replication: true,\n    modules: [{\n        name: \"RedisJSON\",\n    }],\n    alerts: [{\n        name: \"dataset-size\",\n        value: 40,\n    }],\n}, {\n    dependsOn: [subscription_resource],\n});\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\ncard = rediscloud.get_payment_method(card_type=\"Visa\")\nsubscription_resource = rediscloud.Subscription(\"subscription-resource\",\n    payment_method=\"credit-card\",\n    payment_method_id=card.id,\n    memory_storage=\"ram\",\n    cloud_provider=rediscloud.SubscriptionCloudProviderArgs(\n        provider=data[\"rediscloud_cloud_account\"][\"account\"][\"provider_type\"],\n        regions=[rediscloud.SubscriptionCloudProviderRegionArgs(\n            region=\"eu-west-1\",\n            multiple_availability_zones=True,\n            networking_deployment_cidr=\"10.0.0.0/24\",\n            preferred_availability_zones=[\"euw1-az1, euw1-az2, euw1-az3\"],\n        )],\n    ),\n    creation_plan=rediscloud.SubscriptionCreationPlanArgs(\n        memory_limit_in_gb=15,\n        quantity=1,\n        replication=True,\n        throughput_measurement_by=\"operations-per-second\",\n        throughput_measurement_value=20000,\n        modules=[\"RedisJSON\"],\n    ))\n# The primary database to provision\ndatabase_resource = rediscloud.SubscriptionDatabase(\"database-resource\",\n    subscription_id=subscription_resource.id,\n    memory_limit_in_gb=15,\n    data_persistence=\"aof-every-write\",\n    throughput_measurement_by=\"operations-per-second\",\n    throughput_measurement_value=20000,\n    replication=True,\n    modules=[rediscloud.SubscriptionDatabaseModuleArgs(\n        name=\"RedisJSON\",\n    )],\n    alerts=[rediscloud.SubscriptionDatabaseAlertArgs(\n        name=\"dataset-size\",\n        value=40,\n    )],\n    opts=pulumi.ResourceOptions(depends_on=[subscription_resource]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = Pulumi.Rediscloud;\nusing Rediscloud = RedisLabs.Rediscloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var card = Rediscloud.GetPaymentMethod.Invoke(new()\n    {\n        CardType = \"Visa\",\n    });\n\n    var subscription_resource = new Rediscloud.Subscription(\"subscription-resource\", new()\n    {\n        PaymentMethod = \"credit-card\",\n        PaymentMethodId = card.Apply(getPaymentMethodResult => getPaymentMethodResult.Id),\n        MemoryStorage = \"ram\",\n        CloudProvider = new Rediscloud.Inputs.SubscriptionCloudProviderArgs\n        {\n            Provider = data.Rediscloud_cloud_account.Account.Provider_type,\n            Regions = new[]\n            {\n                new Rediscloud.Inputs.SubscriptionCloudProviderRegionArgs\n                {\n                    Region = \"eu-west-1\",\n                    MultipleAvailabilityZones = true,\n                    NetworkingDeploymentCidr = \"10.0.0.0/24\",\n                    PreferredAvailabilityZones = new[]\n                    {\n                        \"euw1-az1, euw1-az2, euw1-az3\",\n                    },\n                },\n            },\n        },\n        CreationPlan = new Rediscloud.Inputs.SubscriptionCreationPlanArgs\n        {\n            MemoryLimitInGb = 15,\n            Quantity = 1,\n            Replication = true,\n            ThroughputMeasurementBy = \"operations-per-second\",\n            ThroughputMeasurementValue = 20000,\n            Modules = new[]\n            {\n                \"RedisJSON\",\n            },\n        },\n    });\n\n    // The primary database to provision\n    var database_resource = new Rediscloud.SubscriptionDatabase(\"database-resource\", new()\n    {\n        SubscriptionId = subscription_resource.Id,\n        MemoryLimitInGb = 15,\n        DataPersistence = \"aof-every-write\",\n        ThroughputMeasurementBy = \"operations-per-second\",\n        ThroughputMeasurementValue = 20000,\n        Replication = true,\n        Modules = new[]\n        {\n            new Rediscloud.Inputs.SubscriptionDatabaseModuleArgs\n            {\n                Name = \"RedisJSON\",\n            },\n        },\n        Alerts = new[]\n        {\n            new Rediscloud.Inputs.SubscriptionDatabaseAlertArgs\n            {\n                Name = \"dataset-size\",\n                Value = 40,\n            },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn = new[]\n        {\n            subscription_resource,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcard, err := rediscloud.GetPaymentMethod(ctx, &rediscloud.GetPaymentMethodArgs{\n\t\t\tCardType: pulumi.StringRef(\"Visa\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rediscloud.NewSubscription(ctx, \"subscription-resource\", &rediscloud.SubscriptionArgs{\n\t\t\tPaymentMethod:   pulumi.String(\"credit-card\"),\n\t\t\tPaymentMethodId: *pulumi.String(card.Id),\n\t\t\tMemoryStorage:   pulumi.String(\"ram\"),\n\t\t\tCloudProvider: &rediscloud.SubscriptionCloudProviderArgs{\n\t\t\t\tProvider: pulumi.Any(data.Rediscloud_cloud_account.Account.Provider_type),\n\t\t\t\tRegions: rediscloud.SubscriptionCloudProviderRegionArray{\n\t\t\t\t\t&rediscloud.SubscriptionCloudProviderRegionArgs{\n\t\t\t\t\t\tRegion:                    pulumi.String(\"eu-west-1\"),\n\t\t\t\t\t\tMultipleAvailabilityZones: pulumi.Bool(true),\n\t\t\t\t\t\tNetworkingDeploymentCidr:  pulumi.String(\"10.0.0.0/24\"),\n\t\t\t\t\t\tPreferredAvailabilityZones: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"euw1-az1, euw1-az2, euw1-az3\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tCreationPlan: &rediscloud.SubscriptionCreationPlanArgs{\n\t\t\t\tMemoryLimitInGb:            pulumi.Float64(15),\n\t\t\t\tQuantity:                   pulumi.Int(1),\n\t\t\t\tReplication:                pulumi.Bool(true),\n\t\t\t\tThroughputMeasurementBy:    pulumi.String(\"operations-per-second\"),\n\t\t\t\tThroughputMeasurementValue: pulumi.Int(20000),\n\t\t\t\tModules: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"RedisJSON\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rediscloud.NewSubscriptionDatabase(ctx, \"database-resource\", &rediscloud.SubscriptionDatabaseArgs{\n\t\t\tSubscriptionId:             subscription_resource.ID(),\n\t\t\tMemoryLimitInGb:            pulumi.Float64(15),\n\t\t\tDataPersistence:            pulumi.String(\"aof-every-write\"),\n\t\t\tThroughputMeasurementBy:    pulumi.String(\"operations-per-second\"),\n\t\t\tThroughputMeasurementValue: pulumi.Int(20000),\n\t\t\tReplication:                pulumi.Bool(true),\n\t\t\tModules: rediscloud.SubscriptionDatabaseModuleArray{\n\t\t\t\t&rediscloud.SubscriptionDatabaseModuleArgs{\n\t\t\t\t\tName: pulumi.String(\"RedisJSON\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAlerts: rediscloud.SubscriptionDatabaseAlertArray{\n\t\t\t\t&rediscloud.SubscriptionDatabaseAlertArgs{\n\t\t\t\t\tName:  pulumi.String(\"dataset-size\"),\n\t\t\t\t\tValue: pulumi.Int(40),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tsubscription_resource,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.RediscloudFunctions;\nimport com.pulumi.rediscloud.inputs.GetPaymentMethodArgs;\nimport com.pulumi.rediscloud.Subscription;\nimport com.pulumi.rediscloud.SubscriptionArgs;\nimport com.pulumi.rediscloud.inputs.SubscriptionCloudProviderArgs;\nimport com.pulumi.rediscloud.inputs.SubscriptionCreationPlanArgs;\nimport com.pulumi.rediscloud.SubscriptionDatabase;\nimport com.pulumi.rediscloud.SubscriptionDatabaseArgs;\nimport com.pulumi.rediscloud.inputs.SubscriptionDatabaseModuleArgs;\nimport com.pulumi.rediscloud.inputs.SubscriptionDatabaseAlertArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var card = RediscloudFunctions.getPaymentMethod(GetPaymentMethodArgs.builder()\n            .cardType(\"Visa\")\n            .build());\n\n        var subscription_resource = new Subscription(\"subscription-resource\", SubscriptionArgs.builder()        \n            .paymentMethod(\"credit-card\")\n            .paymentMethodId(card.applyValue(getPaymentMethodResult -> getPaymentMethodResult.id()))\n            .memoryStorage(\"ram\")\n            .cloudProvider(SubscriptionCloudProviderArgs.builder()\n                .provider(data.rediscloud_cloud_account().account().provider_type())\n                .regions(SubscriptionCloudProviderRegionArgs.builder()\n                    .region(\"eu-west-1\")\n                    .multipleAvailabilityZones(true)\n                    .networkingDeploymentCidr(\"10.0.0.0/24\")\n                    .preferredAvailabilityZones(\"euw1-az1, euw1-az2, euw1-az3\")\n                    .build())\n                .build())\n            .creationPlan(SubscriptionCreationPlanArgs.builder()\n                .memoryLimitInGb(15)\n                .quantity(1)\n                .replication(true)\n                .throughputMeasurementBy(\"operations-per-second\")\n                .throughputMeasurementValue(20000)\n                .modules(\"RedisJSON\")\n                .build())\n            .build());\n\n        var database_resource = new SubscriptionDatabase(\"database-resource\", SubscriptionDatabaseArgs.builder()        \n            .subscriptionId(subscription_resource.id())\n            .memoryLimitInGb(15)\n            .dataPersistence(\"aof-every-write\")\n            .throughputMeasurementBy(\"operations-per-second\")\n            .throughputMeasurementValue(20000)\n            .replication(true)\n            .modules(SubscriptionDatabaseModuleArgs.builder()\n                .name(\"RedisJSON\")\n                .build())\n            .alerts(SubscriptionDatabaseAlertArgs.builder()\n                .name(\"dataset-size\")\n                .value(40)\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(subscription_resource)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  subscription-resource:\n    type: rediscloud:Subscription\n    properties:\n      paymentMethod: credit-card\n      paymentMethodId: ${card.id}\n      memoryStorage: ram\n      cloudProvider:\n        provider: ${data.rediscloud_cloud_account.account.provider_type}\n        regions:\n          - region: eu-west-1\n            multipleAvailabilityZones: true\n            networkingDeploymentCidr: 10.0.0.0/24\n            preferredAvailabilityZones:\n              - euw1-az1, euw1-az2, euw1-az3\n      creationPlan:\n        memoryLimitInGb: 15\n        quantity: 1\n        replication: true\n        throughputMeasurementBy: operations-per-second\n        throughputMeasurementValue: 20000\n        modules:\n          - RedisJSON\n  # The primary database to provision\n  database-resource:\n    type: rediscloud:SubscriptionDatabase\n    properties:\n      subscriptionId: ${[\"subscription-resource\"].id}\n      memoryLimitInGb: 15\n      dataPersistence: aof-every-write\n      throughputMeasurementBy: operations-per-second\n      throughputMeasurementValue: 20000\n      replication: true\n      modules:\n        - name: RedisJSON\n      alerts:\n        - name: dataset-size\n          value: 40\n    options:\n      dependson:\n        - ${[\"subscription-resource\"]}\nvariables:\n  card:\n    fn::invoke:\n      Function: rediscloud:getPaymentMethod\n      Arguments:\n        cardType: Visa\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`rediscloud_subscription_database` can be imported using the ID of the subscription and the ID of the database in the format {subscription ID}/{database ID}, e.g.\n\n```sh\n $ pulumi import rediscloud:index/subscriptionDatabase:SubscriptionDatabase database-resource 123456/12345678\n```\n ",
      "properties": {
        "alerts": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FSubscriptionDatabaseAlert:SubscriptionDatabaseAlert"
          },
          "description": "A block defining Redis database alert, documented below, can be specified multiple times\n"
        },
        "averageItemSizeInBytes": {
          "type": "integer",
          "description": "Relevant only to ram-and-flash clusters. Estimated average size (measured in bytes)\nof the items stored in the database. Default: 1000\n"
        },
        "clientSslCertificate": {
          "type": "string",
          "description": "SSL certificate to authenticate user connections\n"
        },
        "dataEviction": {
          "type": "string",
          "description": "The data items eviction policy (either: 'allkeys-lru', 'allkeys-lfu', 'allkeys-random', 'volatile-lru', 'volatile-lfu', 'volatile-random', 'volatile-ttl' or 'noeviction'). Default: 'volatile-lru'\n"
        },
        "dataPersistence": {
          "type": "string",
          "description": "Rate of database's storage data persistence (either: 'none', 'aof-every-1-second', 'aof-every-write', 'snapshot-every-1-hour', 'snapshot-every-6-hours' or 'snapshot-every-12-hours'). Default: ‘none’\n"
        },
        "dbId": {
          "type": "integer",
          "description": "Identifier of the database created\n"
        },
        "enableTls": {
          "type": "boolean",
          "description": "Use TLS for authentication. Default: ‘false’\n"
        },
        "externalEndpointForOssClusterApi": {
          "type": "boolean",
          "description": "Should use the external endpoint for open-source (OSS) Cluster API.\nCan only be enabled if OSS Cluster API support is enabled. Default: 'false'\n"
        },
        "hashingPolicies": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of regular expression rules to shard the database by. See\n[the documentation on clustering](https://docs.redislabs.com/latest/rc/concepts/clustering/) for more information on the\nhashing policy. This cannot be set when `support_oss_cluster_api` is set to true.\n"
        },
        "memoryLimitInGb": {
          "type": "number",
          "description": "Maximum memory usage for this specific database\n"
        },
        "modules": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FSubscriptionDatabaseModule:SubscriptionDatabaseModule"
          },
          "description": "A list of modules objects, documented below. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "name": {
          "type": "string",
          "description": "A meaningful name to identify the database\n"
        },
        "password": {
          "type": "string",
          "description": "Password to access the database. If omitted, a random 32 character long alphanumeric password will be automatically generated\n",
          "secret": true
        },
        "periodicBackupPath": {
          "type": "string",
          "description": "Path that will be used to store database backup files. **Deprecated: Use `remote_backup` block instead**\n",
          "deprecationMessage": "Use `remote_backup` block instead"
        },
        "port": {
          "type": "integer",
          "description": "TCP port on which the database is available - must be between 10000 and 19999. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "privateEndpoint": {
          "type": "string",
          "description": "Private endpoint to access the database\n"
        },
        "protocol": {
          "type": "string",
          "description": "The protocol that will be used to access the database, (either ‘redis’ or ‘memcached’) Default: ‘redis’. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "publicEndpoint": {
          "type": "string",
          "description": "Public endpoint to access the database\n"
        },
        "remoteBackup": {
          "$ref": "#/types/rediscloud:index%2FSubscriptionDatabaseRemoteBackup:SubscriptionDatabaseRemoteBackup",
          "description": "Specifies the backup options for the database, documented below\n"
        },
        "replicaOfs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of Redis database URIs, in the format `redis://user:password@host:port`, that this\ndatabase will be a replica of. If the URI provided is Redis Labs Cloud instance, only host and port should be provided.\nCannot be enabled when `support_oss_cluster_api` is enabled.\n"
        },
        "replication": {
          "type": "boolean",
          "description": "Databases replication. Default: ‘true’\n"
        },
        "sourceIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: [‘192.168.10.0/32’, ‘192.168.12.0/24’])\n"
        },
        "subscriptionId": {
          "type": "string",
          "description": "The ID of the subscription to create the database in. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "supportOssClusterApi": {
          "type": "boolean",
          "description": "Support Redis open-source (OSS) Cluster API. Default: ‘false’\n"
        },
        "throughputMeasurementBy": {
          "type": "string",
          "description": "Throughput measurement method, (either ‘number-of-shards’ or ‘operations-per-second’)\n"
        },
        "throughputMeasurementValue": {
          "type": "integer",
          "description": "Throughput value (as applies to selected measurement method)\n"
        }
      },
      "type": "object",
      "required": [
        "dbId",
        "hashingPolicies",
        "memoryLimitInGb",
        "name",
        "password",
        "privateEndpoint",
        "publicEndpoint",
        "subscriptionId",
        "throughputMeasurementBy",
        "throughputMeasurementValue"
      ],
      "inputProperties": {
        "alerts": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FSubscriptionDatabaseAlert:SubscriptionDatabaseAlert"
          },
          "description": "A block defining Redis database alert, documented below, can be specified multiple times\n"
        },
        "averageItemSizeInBytes": {
          "type": "integer",
          "description": "Relevant only to ram-and-flash clusters. Estimated average size (measured in bytes)\nof the items stored in the database. Default: 1000\n"
        },
        "clientSslCertificate": {
          "type": "string",
          "description": "SSL certificate to authenticate user connections\n"
        },
        "dataEviction": {
          "type": "string",
          "description": "The data items eviction policy (either: 'allkeys-lru', 'allkeys-lfu', 'allkeys-random', 'volatile-lru', 'volatile-lfu', 'volatile-random', 'volatile-ttl' or 'noeviction'). Default: 'volatile-lru'\n"
        },
        "dataPersistence": {
          "type": "string",
          "description": "Rate of database's storage data persistence (either: 'none', 'aof-every-1-second', 'aof-every-write', 'snapshot-every-1-hour', 'snapshot-every-6-hours' or 'snapshot-every-12-hours'). Default: ‘none’\n"
        },
        "enableTls": {
          "type": "boolean",
          "description": "Use TLS for authentication. Default: ‘false’\n"
        },
        "externalEndpointForOssClusterApi": {
          "type": "boolean",
          "description": "Should use the external endpoint for open-source (OSS) Cluster API.\nCan only be enabled if OSS Cluster API support is enabled. Default: 'false'\n"
        },
        "hashingPolicies": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of regular expression rules to shard the database by. See\n[the documentation on clustering](https://docs.redislabs.com/latest/rc/concepts/clustering/) for more information on the\nhashing policy. This cannot be set when `support_oss_cluster_api` is set to true.\n"
        },
        "memoryLimitInGb": {
          "type": "number",
          "description": "Maximum memory usage for this specific database\n"
        },
        "modules": {
          "type": "array",
          "items": {
            "$ref": "#/types/rediscloud:index%2FSubscriptionDatabaseModule:SubscriptionDatabaseModule"
          },
          "description": "A list of modules objects, documented below. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "name": {
          "type": "string",
          "description": "A meaningful name to identify the database\n"
        },
        "password": {
          "type": "string",
          "description": "Password to access the database. If omitted, a random 32 character long alphanumeric password will be automatically generated\n",
          "secret": true
        },
        "periodicBackupPath": {
          "type": "string",
          "description": "Path that will be used to store database backup files. **Deprecated: Use `remote_backup` block instead**\n",
          "deprecationMessage": "Use `remote_backup` block instead"
        },
        "port": {
          "type": "integer",
          "description": "TCP port on which the database is available - must be between 10000 and 19999. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "protocol": {
          "type": "string",
          "description": "The protocol that will be used to access the database, (either ‘redis’ or ‘memcached’) Default: ‘redis’. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "remoteBackup": {
          "$ref": "#/types/rediscloud:index%2FSubscriptionDatabaseRemoteBackup:SubscriptionDatabaseRemoteBackup",
          "description": "Specifies the backup options for the database, documented below\n"
        },
        "replicaOfs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of Redis database URIs, in the format `redis://user:password@host:port`, that this\ndatabase will be a replica of. If the URI provided is Redis Labs Cloud instance, only host and port should be provided.\nCannot be enabled when `support_oss_cluster_api` is enabled.\n"
        },
        "replication": {
          "type": "boolean",
          "description": "Databases replication. Default: ‘true’\n"
        },
        "sourceIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: [‘192.168.10.0/32’, ‘192.168.12.0/24’])\n"
        },
        "subscriptionId": {
          "type": "string",
          "description": "The ID of the subscription to create the database in. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "supportOssClusterApi": {
          "type": "boolean",
          "description": "Support Redis open-source (OSS) Cluster API. Default: ‘false’\n"
        },
        "throughputMeasurementBy": {
          "type": "string",
          "description": "Throughput measurement method, (either ‘number-of-shards’ or ‘operations-per-second’)\n"
        },
        "throughputMeasurementValue": {
          "type": "integer",
          "description": "Throughput value (as applies to selected measurement method)\n"
        }
      },
      "requiredInputs": [
        "memoryLimitInGb",
        "subscriptionId",
        "throughputMeasurementBy",
        "throughputMeasurementValue"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SubscriptionDatabase resources.\n",
        "properties": {
          "alerts": {
            "type": "array",
            "items": {
              "$ref": "#/types/rediscloud:index%2FSubscriptionDatabaseAlert:SubscriptionDatabaseAlert"
            },
            "description": "A block defining Redis database alert, documented below, can be specified multiple times\n"
          },
          "averageItemSizeInBytes": {
            "type": "integer",
            "description": "Relevant only to ram-and-flash clusters. Estimated average size (measured in bytes)\nof the items stored in the database. Default: 1000\n"
          },
          "clientSslCertificate": {
            "type": "string",
            "description": "SSL certificate to authenticate user connections\n"
          },
          "dataEviction": {
            "type": "string",
            "description": "The data items eviction policy (either: 'allkeys-lru', 'allkeys-lfu', 'allkeys-random', 'volatile-lru', 'volatile-lfu', 'volatile-random', 'volatile-ttl' or 'noeviction'). Default: 'volatile-lru'\n"
          },
          "dataPersistence": {
            "type": "string",
            "description": "Rate of database's storage data persistence (either: 'none', 'aof-every-1-second', 'aof-every-write', 'snapshot-every-1-hour', 'snapshot-every-6-hours' or 'snapshot-every-12-hours'). Default: ‘none’\n"
          },
          "dbId": {
            "type": "integer",
            "description": "Identifier of the database created\n"
          },
          "enableTls": {
            "type": "boolean",
            "description": "Use TLS for authentication. Default: ‘false’\n"
          },
          "externalEndpointForOssClusterApi": {
            "type": "boolean",
            "description": "Should use the external endpoint for open-source (OSS) Cluster API.\nCan only be enabled if OSS Cluster API support is enabled. Default: 'false'\n"
          },
          "hashingPolicies": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of regular expression rules to shard the database by. See\n[the documentation on clustering](https://docs.redislabs.com/latest/rc/concepts/clustering/) for more information on the\nhashing policy. This cannot be set when `support_oss_cluster_api` is set to true.\n"
          },
          "memoryLimitInGb": {
            "type": "number",
            "description": "Maximum memory usage for this specific database\n"
          },
          "modules": {
            "type": "array",
            "items": {
              "$ref": "#/types/rediscloud:index%2FSubscriptionDatabaseModule:SubscriptionDatabaseModule"
            },
            "description": "A list of modules objects, documented below. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "name": {
            "type": "string",
            "description": "A meaningful name to identify the database\n"
          },
          "password": {
            "type": "string",
            "description": "Password to access the database. If omitted, a random 32 character long alphanumeric password will be automatically generated\n",
            "secret": true
          },
          "periodicBackupPath": {
            "type": "string",
            "description": "Path that will be used to store database backup files. **Deprecated: Use `remote_backup` block instead**\n",
            "deprecationMessage": "Use `remote_backup` block instead"
          },
          "port": {
            "type": "integer",
            "description": "TCP port on which the database is available - must be between 10000 and 19999. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "privateEndpoint": {
            "type": "string",
            "description": "Private endpoint to access the database\n"
          },
          "protocol": {
            "type": "string",
            "description": "The protocol that will be used to access the database, (either ‘redis’ or ‘memcached’) Default: ‘redis’. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "publicEndpoint": {
            "type": "string",
            "description": "Public endpoint to access the database\n"
          },
          "remoteBackup": {
            "$ref": "#/types/rediscloud:index%2FSubscriptionDatabaseRemoteBackup:SubscriptionDatabaseRemoteBackup",
            "description": "Specifies the backup options for the database, documented below\n"
          },
          "replicaOfs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of Redis database URIs, in the format `redis://user:password@host:port`, that this\ndatabase will be a replica of. If the URI provided is Redis Labs Cloud instance, only host and port should be provided.\nCannot be enabled when `support_oss_cluster_api` is enabled.\n"
          },
          "replication": {
            "type": "boolean",
            "description": "Databases replication. Default: ‘true’\n"
          },
          "sourceIps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: [‘192.168.10.0/32’, ‘192.168.12.0/24’])\n"
          },
          "subscriptionId": {
            "type": "string",
            "description": "The ID of the subscription to create the database in. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "supportOssClusterApi": {
            "type": "boolean",
            "description": "Support Redis open-source (OSS) Cluster API. Default: ‘false’\n"
          },
          "throughputMeasurementBy": {
            "type": "string",
            "description": "Throughput measurement method, (either ‘number-of-shards’ or ‘operations-per-second’)\n"
          },
          "throughputMeasurementValue": {
            "type": "integer",
            "description": "Throughput value (as applies to selected measurement method)\n"
          }
        },
        "type": "object"
      }
    },
    "rediscloud:index/subscriptionPeering:SubscriptionPeering": {
      "description": "Creates an AWS or GCP VPC peering for an existing Redis Enterprise Cloud Subscription, allowing access to your subscription databases as if they were on the same network.\n\nFor AWS, peering should be accepted by the other side.\nFor GCP, the opposite peering request should be submitted.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### AWS\n\nThe following example shows how a subscription can be peered with a AWS VPC using the rediscloud and google providers.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as rediscloud from \"@rediscloud/pulumi-rediscloud\";\n\nconst exampleSubscription = new rediscloud.Subscription(\"exampleSubscription\", {});\n// ...\nconst exampleSubscriptionPeering = new rediscloud.SubscriptionPeering(\"exampleSubscriptionPeering\", {\n    subscriptionId: exampleSubscription.id,\n    region: \"eu-west-1\",\n    awsAccountId: \"123456789012\",\n    vpcId: \"vpc-01234567890\",\n    vpcCidr: \"10.0.0.0/8\",\n});\nconst example_peering = new aws.ec2.VpcPeeringConnectionAccepter(\"example-peering\", {\n    vpcPeeringConnectionId: exampleSubscriptionPeering.awsPeeringId,\n    autoAccept: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_rediscloud as rediscloud\n\nexample_subscription = rediscloud.Subscription(\"exampleSubscription\")\n# ...\nexample_subscription_peering = rediscloud.SubscriptionPeering(\"exampleSubscriptionPeering\",\n    subscription_id=example_subscription.id,\n    region=\"eu-west-1\",\n    aws_account_id=\"123456789012\",\n    vpc_id=\"vpc-01234567890\",\n    vpc_cidr=\"10.0.0.0/8\")\nexample_peering = aws.ec2.VpcPeeringConnectionAccepter(\"example-peering\",\n    vpc_peering_connection_id=example_subscription_peering.aws_peering_id,\n    auto_accept=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Rediscloud = RedisLabs.Rediscloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleSubscription = new Rediscloud.Subscription(\"exampleSubscription\");\n\n    // ...\n    var exampleSubscriptionPeering = new Rediscloud.SubscriptionPeering(\"exampleSubscriptionPeering\", new()\n    {\n        SubscriptionId = exampleSubscription.Id,\n        Region = \"eu-west-1\",\n        AwsAccountId = \"123456789012\",\n        VpcId = \"vpc-01234567890\",\n        VpcCidr = \"10.0.0.0/8\",\n    });\n\n    var example_peering = new Aws.Ec2.VpcPeeringConnectionAccepter(\"example-peering\", new()\n    {\n        VpcPeeringConnectionId = exampleSubscriptionPeering.AwsPeeringId,\n        AutoAccept = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleSubscription, err := rediscloud.NewSubscription(ctx, \"exampleSubscription\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubscriptionPeering, err := rediscloud.NewSubscriptionPeering(ctx, \"exampleSubscriptionPeering\", &rediscloud.SubscriptionPeeringArgs{\n\t\t\tSubscriptionId: exampleSubscription.ID(),\n\t\t\tRegion:         pulumi.String(\"eu-west-1\"),\n\t\t\tAwsAccountId:   pulumi.String(\"123456789012\"),\n\t\t\tVpcId:          pulumi.String(\"vpc-01234567890\"),\n\t\t\tVpcCidr:        pulumi.String(\"10.0.0.0/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewVpcPeeringConnectionAccepter(ctx, \"example-peering\", &ec2.VpcPeeringConnectionAccepterArgs{\n\t\t\tVpcPeeringConnectionId: exampleSubscriptionPeering.AwsPeeringId,\n\t\t\tAutoAccept:             pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.Subscription;\nimport com.pulumi.rediscloud.SubscriptionPeering;\nimport com.pulumi.rediscloud.SubscriptionPeeringArgs;\nimport com.pulumi.aws.ec2.VpcPeeringConnectionAccepter;\nimport com.pulumi.aws.ec2.VpcPeeringConnectionAccepterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleSubscription = new Subscription(\"exampleSubscription\");\n\n        var exampleSubscriptionPeering = new SubscriptionPeering(\"exampleSubscriptionPeering\", SubscriptionPeeringArgs.builder()        \n            .subscriptionId(exampleSubscription.id())\n            .region(\"eu-west-1\")\n            .awsAccountId(\"123456789012\")\n            .vpcId(\"vpc-01234567890\")\n            .vpcCidr(\"10.0.0.0/8\")\n            .build());\n\n        var example_peering = new VpcPeeringConnectionAccepter(\"example-peering\", VpcPeeringConnectionAccepterArgs.builder()        \n            .vpcPeeringConnectionId(exampleSubscriptionPeering.awsPeeringId())\n            .autoAccept(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleSubscription:\n    type: rediscloud:Subscription\n  exampleSubscriptionPeering:\n    type: rediscloud:SubscriptionPeering\n    properties:\n      subscriptionId: ${exampleSubscription.id}\n      region: eu-west-1\n      awsAccountId: '123456789012'\n      vpcId: vpc-01234567890\n      vpcCidr: 10.0.0.0/8\n  example-peering:\n    type: aws:ec2:VpcPeeringConnectionAccepter\n    properties:\n      vpcPeeringConnectionId: ${exampleSubscriptionPeering.awsPeeringId}\n      autoAccept: true\n```\n{{% /example %}}\n{{% example %}}\n### GCP\n\nThe following example shows how a subscription can be peered with a GCP project network using the rediscloud and google providers.\nThe example HCL locates the network details and creates/accepts the vpc peering connection through the Google provider.   \n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as rediscloud from \"@rediscloud/pulumi-rediscloud\";\n\nconst example = new rediscloud.Subscription(\"example\", {});\n// ...\nconst network = gcp.compute.getNetwork({\n    project: \"my-gcp-project\",\n    name: \"my-gcp-vpc\",\n});\nconst example_peeringSubscriptionPeering = new rediscloud.SubscriptionPeering(\"example-peeringSubscriptionPeering\", {\n    subscriptionId: example.id,\n    providerName: \"GCP\",\n    gcpProjectId: network.then(network => network.project),\n    gcpNetworkName: network.then(network => network.name),\n});\nconst example_peeringNetworkPeering = new gcp.compute.NetworkPeering(\"example-peeringNetworkPeering\", {\n    network: network.then(network => network.selfLink),\n    peerNetwork: `https://www.googleapis.com/compute/v1/projects/${rediscloud_subscription_peering.example.gcp_redis_project_id}/global/networks/${rediscloud_subscription_peering.example.gcp_redis_network_name}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_rediscloud as rediscloud\n\nexample = rediscloud.Subscription(\"example\")\n# ...\nnetwork = gcp.compute.get_network(project=\"my-gcp-project\",\n    name=\"my-gcp-vpc\")\nexample_peering_subscription_peering = rediscloud.SubscriptionPeering(\"example-peeringSubscriptionPeering\",\n    subscription_id=example.id,\n    provider_name=\"GCP\",\n    gcp_project_id=network.project,\n    gcp_network_name=network.name)\nexample_peering_network_peering = gcp.compute.NetworkPeering(\"example-peeringNetworkPeering\",\n    network=network.self_link,\n    peer_network=f\"https://www.googleapis.com/compute/v1/projects/{rediscloud_subscription_peering['example']['gcp_redis_project_id']}/global/networks/{rediscloud_subscription_peering['example']['gcp_redis_network_name']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Rediscloud = RedisLabs.Rediscloud;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Rediscloud.Subscription(\"example\");\n\n    // ...\n    var network = Gcp.Compute.GetNetwork.Invoke(new()\n    {\n        Project = \"my-gcp-project\",\n        Name = \"my-gcp-vpc\",\n    });\n\n    var example_peeringSubscriptionPeering = new Rediscloud.SubscriptionPeering(\"example-peeringSubscriptionPeering\", new()\n    {\n        SubscriptionId = example.Id,\n        ProviderName = \"GCP\",\n        GcpProjectId = network.Apply(getNetworkResult => getNetworkResult.Project),\n        GcpNetworkName = network.Apply(getNetworkResult => getNetworkResult.Name),\n    });\n\n    var example_peeringNetworkPeering = new Gcp.Compute.NetworkPeering(\"example-peeringNetworkPeering\", new()\n    {\n        Network = network.Apply(getNetworkResult => getNetworkResult.SelfLink),\n        PeerNetwork = $\"https://www.googleapis.com/compute/v1/projects/{rediscloud_subscription_peering.Example.Gcp_redis_project_id}/global/networks/{rediscloud_subscription_peering.Example.Gcp_redis_network_name}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rediscloud.NewSubscription(ctx, \"example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork, err := compute.LookupNetwork(ctx, &compute.LookupNetworkArgs{\n\t\t\tProject: pulumi.StringRef(\"my-gcp-project\"),\n\t\t\tName:    \"my-gcp-vpc\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rediscloud.NewSubscriptionPeering(ctx, \"example-peeringSubscriptionPeering\", &rediscloud.SubscriptionPeeringArgs{\n\t\t\tSubscriptionId: example.ID(),\n\t\t\tProviderName:   pulumi.String(\"GCP\"),\n\t\t\tGcpProjectId:   *pulumi.String(network.Project),\n\t\t\tGcpNetworkName: *pulumi.String(network.Name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewNetworkPeering(ctx, \"example-peeringNetworkPeering\", &compute.NetworkPeeringArgs{\n\t\t\tNetwork:     *pulumi.String(network.SelfLink),\n\t\t\tPeerNetwork: pulumi.String(fmt.Sprintf(\"https://www.googleapis.com/compute/v1/projects/%v/global/networks/%v\", rediscloud_subscription_peering.Example.Gcp_redis_project_id, rediscloud_subscription_peering.Example.Gcp_redis_network_name)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.Subscription;\nimport com.pulumi.gcp.compute.ComputeFunctions;\nimport com.pulumi.gcp.compute.inputs.GetNetworkArgs;\nimport com.pulumi.rediscloud.SubscriptionPeering;\nimport com.pulumi.rediscloud.SubscriptionPeeringArgs;\nimport com.pulumi.gcp.compute.NetworkPeering;\nimport com.pulumi.gcp.compute.NetworkPeeringArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Subscription(\"example\");\n\n        final var network = ComputeFunctions.getNetwork(GetNetworkArgs.builder()\n            .project(\"my-gcp-project\")\n            .name(\"my-gcp-vpc\")\n            .build());\n\n        var example_peeringSubscriptionPeering = new SubscriptionPeering(\"example-peeringSubscriptionPeering\", SubscriptionPeeringArgs.builder()        \n            .subscriptionId(example.id())\n            .providerName(\"GCP\")\n            .gcpProjectId(network.applyValue(getNetworkResult -> getNetworkResult.project()))\n            .gcpNetworkName(network.applyValue(getNetworkResult -> getNetworkResult.name()))\n            .build());\n\n        var example_peeringNetworkPeering = new NetworkPeering(\"example-peeringNetworkPeering\", NetworkPeeringArgs.builder()        \n            .network(network.applyValue(getNetworkResult -> getNetworkResult.selfLink()))\n            .peerNetwork(String.format(\"https://www.googleapis.com/compute/v1/projects/%s/global/networks/%s\", rediscloud_subscription_peering.example().gcp_redis_project_id(),rediscloud_subscription_peering.example().gcp_redis_network_name()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: rediscloud:Subscription\n  example-peeringSubscriptionPeering:\n    type: rediscloud:SubscriptionPeering\n    properties:\n      subscriptionId: ${example.id}\n      providerName: GCP\n      gcpProjectId: ${network.project}\n      gcpNetworkName: ${network.name}\n  example-peeringNetworkPeering:\n    type: gcp:compute:NetworkPeering\n    properties:\n      network: ${network.selfLink}\n      peerNetwork: https://www.googleapis.com/compute/v1/projects/${rediscloud_subscription_peering.example.gcp_redis_project_id}/global/networks/${rediscloud_subscription_peering.example.gcp_redis_network_name}\nvariables:\n  network:\n    fn::invoke:\n      Function: gcp:compute:getNetwork\n      Arguments:\n        project: my-gcp-project\n        name: my-gcp-vpc\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`rediscloud_subscription_peering` can be imported using the ID of the subscription and the ID of the peering connection, e.g.\n\n```sh\n $ pulumi import rediscloud:index/subscriptionPeering:SubscriptionPeering example 12345678/1234\n```\n ",
      "properties": {
        "awsAccountId": {
          "type": "string",
          "description": "AWS account ID that the VPC to be peered lives in. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "awsPeeringId": {
          "type": "string",
          "description": "Identifier of the AWS cloud peering\n"
        },
        "gcpNetworkName": {
          "type": "string",
          "description": "The name of the network to be peered. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "gcpPeeringId": {
          "type": "string",
          "description": "Identifier of the cloud peering\n"
        },
        "gcpProjectId": {
          "type": "string",
          "description": "GCP project ID that the VPC to be peered lives in. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "gcpRedisNetworkName": {
          "type": "string",
          "description": "The name of the Redis Enterprise Cloud network to be peered\n"
        },
        "gcpRedisProjectId": {
          "type": "string",
          "description": "Identifier of the Redis Enterprise Cloud GCP project to be peered\n"
        },
        "providerName": {
          "type": "string",
          "description": "The cloud provider to use with the vpc peering, (either `AWS` or `GCP`). Default: ‘AWS’. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "region": {
          "type": "string",
          "description": "AWS Region that the VPC to be peered lives in. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "status": {
          "type": "string",
          "description": "is set to the current status of the peering - `initiating-request`, `pending-acceptance`, `active`, `inactive` or `failed`.\n"
        },
        "subscriptionId": {
          "type": "string",
          "description": "A valid subscription predefined in the current account. **Modifying this attribute will force creation of a new resource.**\n\n**AWS ONLY:**\n"
        },
        "vpcCidr": {
          "type": "string",
          "description": "CIDR range of the VPC to be peered. Either this or `vpc_cidrs` must be specified. **Modifying this attribute will force creation of a new resource.**\n"
        },
        "vpcCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "CIDR ranges of the VPC to be peered. Either this or `vpc_cidr` must be specified. **Modifying this attribute will force creation of a new resource.**\n\n**GCP ONLY:**\n"
        },
        "vpcId": {
          "type": "string",
          "description": "Identifier of the VPC to be peered. **Modifying this attribute will force creation of a new resource.**\n"
        }
      },
      "type": "object",
      "required": [
        "awsAccountId",
        "awsPeeringId",
        "gcpNetworkName",
        "gcpPeeringId",
        "gcpProjectId",
        "gcpRedisNetworkName",
        "gcpRedisProjectId",
        "region",
        "status",
        "subscriptionId",
        "vpcCidr",
        "vpcCidrs",
        "vpcId"
      ],
      "inputProperties": {
        "awsAccountId": {
          "type": "string",
          "description": "AWS account ID that the VPC to be peered lives in. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "gcpNetworkName": {
          "type": "string",
          "description": "The name of the network to be peered. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "gcpProjectId": {
          "type": "string",
          "description": "GCP project ID that the VPC to be peered lives in. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "providerName": {
          "type": "string",
          "description": "The cloud provider to use with the vpc peering, (either `AWS` or `GCP`). Default: ‘AWS’. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "region": {
          "type": "string",
          "description": "AWS Region that the VPC to be peered lives in. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "subscriptionId": {
          "type": "string",
          "description": "A valid subscription predefined in the current account. **Modifying this attribute will force creation of a new resource.**\n\n**AWS ONLY:**\n",
          "willReplaceOnChanges": true
        },
        "vpcCidr": {
          "type": "string",
          "description": "CIDR range of the VPC to be peered. Either this or `vpc_cidrs` must be specified. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        },
        "vpcCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "CIDR ranges of the VPC to be peered. Either this or `vpc_cidr` must be specified. **Modifying this attribute will force creation of a new resource.**\n\n**GCP ONLY:**\n",
          "willReplaceOnChanges": true
        },
        "vpcId": {
          "type": "string",
          "description": "Identifier of the VPC to be peered. **Modifying this attribute will force creation of a new resource.**\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "subscriptionId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SubscriptionPeering resources.\n",
        "properties": {
          "awsAccountId": {
            "type": "string",
            "description": "AWS account ID that the VPC to be peered lives in. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "awsPeeringId": {
            "type": "string",
            "description": "Identifier of the AWS cloud peering\n"
          },
          "gcpNetworkName": {
            "type": "string",
            "description": "The name of the network to be peered. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "gcpPeeringId": {
            "type": "string",
            "description": "Identifier of the cloud peering\n"
          },
          "gcpProjectId": {
            "type": "string",
            "description": "GCP project ID that the VPC to be peered lives in. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "gcpRedisNetworkName": {
            "type": "string",
            "description": "The name of the Redis Enterprise Cloud network to be peered\n"
          },
          "gcpRedisProjectId": {
            "type": "string",
            "description": "Identifier of the Redis Enterprise Cloud GCP project to be peered\n"
          },
          "providerName": {
            "type": "string",
            "description": "The cloud provider to use with the vpc peering, (either `AWS` or `GCP`). Default: ‘AWS’. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "region": {
            "type": "string",
            "description": "AWS Region that the VPC to be peered lives in. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "status": {
            "type": "string",
            "description": "is set to the current status of the peering - `initiating-request`, `pending-acceptance`, `active`, `inactive` or `failed`.\n"
          },
          "subscriptionId": {
            "type": "string",
            "description": "A valid subscription predefined in the current account. **Modifying this attribute will force creation of a new resource.**\n\n**AWS ONLY:**\n",
            "willReplaceOnChanges": true
          },
          "vpcCidr": {
            "type": "string",
            "description": "CIDR range of the VPC to be peered. Either this or `vpc_cidrs` must be specified. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          },
          "vpcCidrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "CIDR ranges of the VPC to be peered. Either this or `vpc_cidr` must be specified. **Modifying this attribute will force creation of a new resource.**\n\n**GCP ONLY:**\n",
            "willReplaceOnChanges": true
          },
          "vpcId": {
            "type": "string",
            "description": "Identifier of the VPC to be peered. **Modifying this attribute will force creation of a new resource.**\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    }
  },
  "functions": {
    "rediscloud:index/getAclRole:getAclRole": {
      "description": "The Role data source allows access to an existing Role within your Redis Enterprise Cloud Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@pulumi/rediscloud\";\n\nconst example = rediscloud.getAclRole({\n    name: \"fast-admin\",\n});\nexport const rediscloudAclRole = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nexample = rediscloud.get_acl_role(name=\"fast-admin\")\npulumi.export(\"rediscloudAclRole\", example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = Pulumi.Rediscloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Rediscloud.GetAclRole.Invoke(new()\n    {\n        Name = \"fast-admin\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"rediscloudAclRole\"] = example.Apply(getAclRoleResult =\u003e getAclRoleResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rediscloud.LookupAclRole(ctx, \u0026rediscloud.LookupAclRoleArgs{\n\t\t\tName: \"fast-admin\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rediscloudAclRole\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.RediscloudFunctions;\nimport com.pulumi.rediscloud.inputs.GetAclRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RediscloudFunctions.getAclRole(GetAclRoleArgs.builder()\n            .name(\"fast-admin\")\n            .build());\n\n        ctx.export(\"rediscloudAclRole\", example.applyValue(getAclRoleResult -\u003e getAclRoleResult.id()));\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      Function: rediscloud:getAclRole\n      Arguments:\n        name: fast-admin\noutputs:\n  rediscloudAclRole: ${example.id}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAclRole.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the Role to filter returned subscriptions\n"
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAclRole.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "description": "Name of the Rule.\n",
            "type": "string"
          },
          "rules": {
            "description": "The Rules associated with the Role.\n",
            "items": {
              "$ref": "#/types/rediscloud:index%2FgetAclRoleRule:getAclRoleRule"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "name",
          "rules"
        ],
        "type": "object"
      }
    },
    "rediscloud:index/getAclRule:getAclRule": {
      "description": "The Rule (a.k.a Redis Rule, Redis ACL) data source allows access to an existing Rule within your Redis Enterprise Cloud\nAccount.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@pulumi/rediscloud\";\n\nconst example = rediscloud.getAclRule({\n    name: \"cache-reader-rule\",\n});\nexport const rediscloudAclRule = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nexample = rediscloud.get_acl_rule(name=\"cache-reader-rule\")\npulumi.export(\"rediscloudAclRule\", example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = Pulumi.Rediscloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Rediscloud.GetAclRule.Invoke(new()\n    {\n        Name = \"cache-reader-rule\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"rediscloudAclRule\"] = example.Apply(getAclRuleResult =\u003e getAclRuleResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rediscloud.LookupAclRule(ctx, \u0026rediscloud.LookupAclRuleArgs{\n\t\t\tName: \"cache-reader-rule\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rediscloudAclRule\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.RediscloudFunctions;\nimport com.pulumi.rediscloud.inputs.GetAclRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RediscloudFunctions.getAclRule(GetAclRuleArgs.builder()\n            .name(\"cache-reader-rule\")\n            .build());\n\n        ctx.export(\"rediscloudAclRule\", example.applyValue(getAclRuleResult -\u003e getAclRuleResult.id()));\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      Function: rediscloud:getAclRule\n      Arguments:\n        name: cache-reader-rule\noutputs:\n  rediscloudAclRule: ${example.id}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAclRule.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the Rule to filter returned subscriptions\n"
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAclRule.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "description": "The Rule's name.\n",
            "type": "string"
          },
          "rule": {
            "description": "The ACL Rule itself.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "rule"
        ],
        "type": "object"
      }
    },
    "rediscloud:index/getAclUser:getAclUser": {
      "description": "The User data source allows access to an existing Rule within your Redis Enterprise Cloud Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@pulumi/rediscloud\";\n\nconst example = rediscloud.getAclUser({\n    name: \"fast-admin-john\",\n});\nexport const rediscloudAclUser = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nexample = rediscloud.get_acl_user(name=\"fast-admin-john\")\npulumi.export(\"rediscloudAclUser\", example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = Pulumi.Rediscloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Rediscloud.GetAclUser.Invoke(new()\n    {\n        Name = \"fast-admin-john\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"rediscloudAclUser\"] = example.Apply(getAclUserResult =\u003e getAclUserResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rediscloud.LookupAclUser(ctx, \u0026rediscloud.LookupAclUserArgs{\n\t\t\tName: \"fast-admin-john\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rediscloudAclUser\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.RediscloudFunctions;\nimport com.pulumi.rediscloud.inputs.GetAclUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RediscloudFunctions.getAclUser(GetAclUserArgs.builder()\n            .name(\"fast-admin-john\")\n            .build());\n\n        ctx.export(\"rediscloudAclUser\", example.applyValue(getAclUserResult -\u003e getAclUserResult.id()));\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      Function: rediscloud:getAclUser\n      Arguments:\n        name: fast-admin-john\noutputs:\n  rediscloudAclUser: ${example.id}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAclUser.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the User to filter returned subscriptions\n"
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getAclUser.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "description": "The User's name.\n",
            "type": "string"
          },
          "role": {
            "description": "The name of the User's Role.\n",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "role"
        ],
        "type": "object"
      }
    },
    "rediscloud:index/getCloudAccount:getCloudAccount": {
      "description": "The Cloud Account data source allows access to the ID of a Cloud Account configuration.  This ID can be \nused when creating Subscription resources. \n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThe following example excludes the Redis Labs internal cloud account and returns only AWS related accounts.\nThis example assumes there is only a single AWS cloud account defined.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@pulumi/rediscloud\";\n\nconst example = rediscloud.getCloudAccount({\n    excludeInternalAccount: true,\n    providerType: \"AWS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nexample = rediscloud.get_cloud_account(exclude_internal_account=True,\n    provider_type=\"AWS\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = Pulumi.Rediscloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Rediscloud.GetCloudAccount.Invoke(new()\n    {\n        ExcludeInternalAccount = true,\n        ProviderType = \"AWS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rediscloud.LookupCloudAccount(ctx, \u0026rediscloud.LookupCloudAccountArgs{\n\t\t\tExcludeInternalAccount: pulumi.BoolRef(true),\n\t\t\tProviderType:           pulumi.StringRef(\"AWS\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.RediscloudFunctions;\nimport com.pulumi.rediscloud.inputs.GetCloudAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RediscloudFunctions.getCloudAccount(GetCloudAccountArgs.builder()\n            .excludeInternalAccount(true)\n            .providerType(\"AWS\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      Function: rediscloud:getCloudAccount\n      Arguments:\n        excludeInternalAccount: true\n        providerType: AWS\n```\n\nIf there is more than one AWS cloud account then the name attribute can be used to further filter the ID returned.\nThis example looks for a cloud account named `test` and returns the cloud account ID and access key ID. \n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@pulumi/rediscloud\";\n\nconst example = rediscloud.getCloudAccount({\n    excludeInternalAccount: true,\n    providerType: \"AWS\",\n    name: \"test\",\n});\nexport const cloudAccountId = example.then(example =\u003e example.id);\nexport const cloudAccountAccessKeyId = example.then(example =\u003e example.accessKeyId);\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nexample = rediscloud.get_cloud_account(exclude_internal_account=True,\n    provider_type=\"AWS\",\n    name=\"test\")\npulumi.export(\"cloudAccountId\", example.id)\npulumi.export(\"cloudAccountAccessKeyId\", example.access_key_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = Pulumi.Rediscloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Rediscloud.GetCloudAccount.Invoke(new()\n    {\n        ExcludeInternalAccount = true,\n        ProviderType = \"AWS\",\n        Name = \"test\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cloudAccountId\"] = example.Apply(getCloudAccountResult =\u003e getCloudAccountResult.Id),\n        [\"cloudAccountAccessKeyId\"] = example.Apply(getCloudAccountResult =\u003e getCloudAccountResult.AccessKeyId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rediscloud.LookupCloudAccount(ctx, \u0026rediscloud.LookupCloudAccountArgs{\n\t\t\tExcludeInternalAccount: pulumi.BoolRef(true),\n\t\t\tProviderType:           pulumi.StringRef(\"AWS\"),\n\t\t\tName:                   pulumi.StringRef(\"test\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudAccountId\", example.Id)\n\t\tctx.Export(\"cloudAccountAccessKeyId\", example.AccessKeyId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.RediscloudFunctions;\nimport com.pulumi.rediscloud.inputs.GetCloudAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RediscloudFunctions.getCloudAccount(GetCloudAccountArgs.builder()\n            .excludeInternalAccount(true)\n            .providerType(\"AWS\")\n            .name(\"test\")\n            .build());\n\n        ctx.export(\"cloudAccountId\", example.applyValue(getCloudAccountResult -\u003e getCloudAccountResult.id()));\n        ctx.export(\"cloudAccountAccessKeyId\", example.applyValue(getCloudAccountResult -\u003e getCloudAccountResult.accessKeyId()));\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      Function: rediscloud:getCloudAccount\n      Arguments:\n        excludeInternalAccount: true\n        providerType: AWS\n        name: test\noutputs:\n  cloudAccountId: ${example.id}\n  cloudAccountAccessKeyId: ${example.accessKeyId}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getCloudAccount.\n",
        "properties": {
          "excludeInternalAccount": {
            "type": "boolean",
            "description": "Whether to exclude the Redis Labs internal cloud account.\n"
          },
          "name": {
            "type": "string",
            "description": "A meaningful name to identify the cloud account\n"
          },
          "providerType": {
            "type": "string",
            "description": "The cloud provider of the cloud account, (either `AWS` or `GCP`)\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCloudAccount.\n",
        "properties": {
          "accessKeyId": {
            "description": "The access key ID associated with the cloud account\n",
            "type": "string"
          },
          "excludeInternalAccount": {
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "providerType": {
            "type": "string"
          }
        },
        "required": [
          "accessKeyId",
          "id",
          "name",
          "providerType"
        ],
        "type": "object"
      }
    },
    "rediscloud:index/getDataPersistence:getDataPersistence": {
      "description": "The data persistence data source allows access to a list of supported data persistence options.  \nEach option represents the rate at which a database will persist its data to storage.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThe following example returns all of the data persistence options available within your Redis Enterprise Cloud account.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@pulumi/rediscloud\";\n\nconst example = rediscloud.getDataPersistence({});\nexport const dataPersistenceOptions = example.then(example =\u003e example.dataPersistences);\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nexample = rediscloud.get_data_persistence()\npulumi.export(\"dataPersistenceOptions\", example.data_persistences)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = Pulumi.Rediscloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Rediscloud.GetDataPersistence.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dataPersistenceOptions\"] = example.Apply(getDataPersistenceResult =\u003e getDataPersistenceResult.DataPersistences),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rediscloud.GetDataPersistence(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataPersistenceOptions\", example.DataPersistences)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.RediscloudFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RediscloudFunctions.getDataPersistence();\n\n        ctx.export(\"dataPersistenceOptions\", example.applyValue(getDataPersistenceResult -\u003e getDataPersistenceResult.dataPersistences()));\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      Function: rediscloud:getDataPersistence\n      Arguments: {}\noutputs:\n  dataPersistenceOptions: ${example.dataPersistences}\n```\n{{% /example %}}\n{{% /examples %}}",
      "outputs": {
        "description": "A collection of values returned by getDataPersistence.\n",
        "properties": {
          "dataPersistences": {
            "description": "A list of data persistence option that can be applied to subscription databases\n",
            "items": {
              "$ref": "#/types/rediscloud:index%2FgetDataPersistenceDataPersistence:getDataPersistenceDataPersistence"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          }
        },
        "required": [
          "dataPersistences",
          "id"
        ],
        "type": "object"
      }
    },
    "rediscloud:index/getDatabase:getDatabase": {
      "description": "The Database data source allows access to the details of an existing database within your Redis Enterprise Cloud account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThe following example shows how to locate a single database within a Subscription.  This example assumes the subscription only contains a single database.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@pulumi/rediscloud\";\n\nconst example = rediscloud.getDatabase({\n    subscriptionId: \"1234\",\n});\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nexample = rediscloud.get_database(subscription_id=\"1234\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = Pulumi.Rediscloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Rediscloud.GetDatabase.Invoke(new()\n    {\n        SubscriptionId = \"1234\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rediscloud.GetDatabase(ctx, \u0026rediscloud.GetDatabaseArgs{\n\t\t\tSubscriptionId: \"1234\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.RediscloudFunctions;\nimport com.pulumi.rediscloud.inputs.GetDatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RediscloudFunctions.getDatabase(GetDatabaseArgs.builder()\n            .subscriptionId(\"1234\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      Function: rediscloud:getDatabase\n      Arguments:\n        subscriptionId: '1234'\n```\n\nThe following example shows how to use the name to locate a single database within a subscription that has multiple databases. \n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@pulumi/rediscloud\";\n\nconst example = rediscloud.getDatabase({\n    name: \"first-database\",\n    subscriptionId: \"1234\",\n});\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nexample = rediscloud.get_database(name=\"first-database\",\n    subscription_id=\"1234\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = Pulumi.Rediscloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Rediscloud.GetDatabase.Invoke(new()\n    {\n        Name = \"first-database\",\n        SubscriptionId = \"1234\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rediscloud.GetDatabase(ctx, \u0026rediscloud.GetDatabaseArgs{\n\t\t\tName:           pulumi.StringRef(\"first-database\"),\n\t\t\tSubscriptionId: \"1234\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.RediscloudFunctions;\nimport com.pulumi.rediscloud.inputs.GetDatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RediscloudFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"first-database\")\n            .subscriptionId(\"1234\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      Function: rediscloud:getDatabase\n      Arguments:\n        name: first-database\n        subscriptionId: '1234'\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDatabase.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the database to filter returned databases\n"
          },
          "protocol": {
            "type": "string",
            "description": "The protocol of the database to filter returned databases\n"
          },
          "region": {
            "type": "string",
            "description": "The region of the database to filter returned databases\n"
          },
          "subscriptionId": {
            "type": "string",
            "description": "ID of the subscription that the database belongs to\n"
          }
        },
        "type": "object",
        "required": [
          "subscriptionId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getDatabase.\n",
        "properties": {
          "alerts": {
            "description": "Set of alerts to enable on the database, documented below.\n",
            "items": {
              "$ref": "#/types/rediscloud:index%2FgetDatabaseAlert:getDatabaseAlert"
            },
            "type": "array"
          },
          "dataEviction": {
            "description": "The data items eviction policy.\n",
            "type": "string"
          },
          "dataPersistence": {
            "description": "The rate of database data persistence (in persistent storage).\n",
            "type": "string"
          },
          "hashingPolicies": {
            "description": "The list of regular expression rules the database is sharded by. See\n[the documentation on clustering](https://docs.redislabs.com/latest/rc/concepts/clustering/) for more information on the\nhashing policy.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "memoryLimitInGb": {
            "description": "The maximum memory usage for the database.\n",
            "type": "number"
          },
          "modules": {
            "items": {
              "$ref": "#/types/rediscloud:index%2FgetDatabaseModule:getDatabaseModule"
            },
            "type": "array"
          },
          "name": {
            "description": "The alert name\n",
            "type": "string"
          },
          "password": {
            "description": "The password used to access the database - not present on `memcached` protocol databases.\n",
            "secret": true,
            "type": "string"
          },
          "privateEndpoint": {
            "description": "Private endpoint to access the database\n",
            "type": "string"
          },
          "protocol": {
            "description": "The protocol of the database.\n",
            "type": "string"
          },
          "publicEndpoint": {
            "description": "Public endpoint to access the database\n",
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "replicaOfs": {
            "description": "The set of Redis database URIs, in the format `redis://user:password@host:port`, that this\ndatabase will be a replica of.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "replication": {
            "description": "Database replication.\n",
            "type": "boolean"
          },
          "subscriptionId": {
            "type": "string"
          },
          "supportOssClusterApi": {
            "description": "Supports the Redis open-source (OSS) Cluster API.\n",
            "type": "boolean"
          },
          "throughputMeasurementBy": {
            "description": "The throughput measurement method.\n",
            "type": "string"
          },
          "throughputMeasurementValue": {
            "description": "The throughput value.\n",
            "type": "integer"
          }
        },
        "required": [
          "alerts",
          "dataEviction",
          "dataPersistence",
          "hashingPolicies",
          "id",
          "memoryLimitInGb",
          "modules",
          "name",
          "password",
          "privateEndpoint",
          "protocol",
          "publicEndpoint",
          "region",
          "replicaOfs",
          "replication",
          "subscriptionId",
          "supportOssClusterApi",
          "throughputMeasurementBy",
          "throughputMeasurementValue"
        ],
        "type": "object"
      }
    },
    "rediscloud:index/getDatabaseModules:getDatabaseModules": {
      "description": "The database modules data source allows access to a list of supported [Redis Enterprise Cloud modules](https://redislabs.com/redis-enterprise/modules).  \nEach module represents an enrichment that can be applied to a Redis database.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThe following example returns a list of all modules available within your Redis Enterprise Cloud account.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@pulumi/rediscloud\";\n\nconst example = rediscloud.getDatabaseModules({});\nexport const rediscloudDatabaseModules = example.then(example =\u003e example.modules);\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nexample = rediscloud.get_database_modules()\npulumi.export(\"rediscloudDatabaseModules\", example.modules)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = Pulumi.Rediscloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Rediscloud.GetDatabaseModules.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"rediscloudDatabaseModules\"] = example.Apply(getDatabaseModulesResult =\u003e getDatabaseModulesResult.Modules),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rediscloud.GetDatabaseModules(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rediscloudDatabaseModules\", example.Modules)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.RediscloudFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RediscloudFunctions.getDatabaseModules();\n\n        ctx.export(\"rediscloudDatabaseModules\", example.applyValue(getDatabaseModulesResult -\u003e getDatabaseModulesResult.modules()));\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      Function: rediscloud:getDatabaseModules\n      Arguments: {}\noutputs:\n  rediscloudDatabaseModules: ${example.modules}\n```\n{{% /example %}}\n{{% /examples %}}",
      "outputs": {
        "description": "A collection of values returned by getDatabaseModules.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "modules": {
            "description": "A list of database modules.\n",
            "items": {
              "$ref": "#/types/rediscloud:index%2FgetDatabaseModulesModule:getDatabaseModulesModule"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "modules"
        ],
        "type": "object"
      }
    },
    "rediscloud:index/getPaymentMethod:getPaymentMethod": {
      "description": "The Payment Method data source allows access to the ID of a Payment Method configured against your Redis Enterprise Cloud account. This ID can be used when creating Subscription resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getPaymentMethod.\n",
        "properties": {
          "cardType": {
            "type": "string",
            "description": "Type of card that the payment method should be, such as `Visa`.\n"
          },
          "excludeExpired": {
            "type": "boolean",
            "description": "Whether to exclude any expired cards or not. Default is `true`.\n"
          },
          "lastFourNumbers": {
            "type": "string",
            "description": "Last four numbers of the card of the payment method.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getPaymentMethod.\n",
        "properties": {
          "cardType": {
            "type": "string"
          },
          "excludeExpired": {
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "lastFourNumbers": {
            "type": "string"
          }
        },
        "required": [
          "cardType",
          "id",
          "lastFourNumbers"
        ],
        "type": "object"
      }
    },
    "rediscloud:index/getRegions:getRegions": {
      "description": "The Regions data source allows access to a list of supported cloud provider regions. These regions can be used with the subscription resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThe following example returns all of the supported regions available within your Redis Enterprise Cloud account.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@pulumi/rediscloud\";\n\nconst example = rediscloud.getRegions({});\nexport const allRegions = example.then(example =\u003e example.regions);\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nexample = rediscloud.get_regions()\npulumi.export(\"allRegions\", example.regions)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = Pulumi.Rediscloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Rediscloud.GetRegions.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"allRegions\"] = example.Apply(getRegionsResult =\u003e getRegionsResult.Regions),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rediscloud.GetRegions(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"allRegions\", example.Regions)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.RediscloudFunctions;\nimport com.pulumi.rediscloud.inputs.GetRegionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RediscloudFunctions.getRegions();\n\n        ctx.export(\"allRegions\", example.applyValue(getRegionsResult -\u003e getRegionsResult.regions()));\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      Function: rediscloud:getRegions\n      Arguments: {}\noutputs:\n  allRegions: ${example.regions}\n```\n\nThe following example show how the list of regions can be filtered by cloud provider, (`AWS` or `GCP`).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@pulumi/rediscloud\";\n\nconst exampleAws = rediscloud.getRegions({\n    providerName: \"AWS\",\n});\nconst exampleGcp = rediscloud.getRegions({\n    providerName: \"GCP\",\n});\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nexample_aws = rediscloud.get_regions(provider_name=\"AWS\")\nexample_gcp = rediscloud.get_regions(provider_name=\"GCP\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = Pulumi.Rediscloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleAws = Rediscloud.GetRegions.Invoke(new()\n    {\n        ProviderName = \"AWS\",\n    });\n\n    var exampleGcp = Rediscloud.GetRegions.Invoke(new()\n    {\n        ProviderName = \"GCP\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rediscloud.GetRegions(ctx, \u0026rediscloud.GetRegionsArgs{\n\t\t\tProviderName: pulumi.StringRef(\"AWS\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rediscloud.GetRegions(ctx, \u0026rediscloud.GetRegionsArgs{\n\t\t\tProviderName: pulumi.StringRef(\"GCP\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.RediscloudFunctions;\nimport com.pulumi.rediscloud.inputs.GetRegionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleAws = RediscloudFunctions.getRegions(GetRegionsArgs.builder()\n            .providerName(\"AWS\")\n            .build());\n\n        final var exampleGcp = RediscloudFunctions.getRegions(GetRegionsArgs.builder()\n            .providerName(\"GCP\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleAws:\n    fn::invoke:\n      Function: rediscloud:getRegions\n      Arguments:\n        providerName: AWS\n  exampleGcp:\n    fn::invoke:\n      Function: rediscloud:getRegions\n      Arguments:\n        providerName: GCP\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getRegions.\n",
        "properties": {
          "providerName": {
            "type": "string",
            "description": "The name of the cloud provider to filter returned regions, (accepted values are `AWS` or `GCP`).\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getRegions.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "providerName": {
            "description": "The identifier of the owning cloud provider, (either `AWS` or `GCP`)\n",
            "type": "string"
          },
          "regions": {
            "description": "A list of regions from either a single or multiple cloud providers.\n",
            "items": {
              "$ref": "#/types/rediscloud:index%2FgetRegionsRegion:getRegionsRegion"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "regions"
        ],
        "type": "object"
      }
    },
    "rediscloud:index/getSubscription:getSubscription": {
      "description": "The Subscription data source allows access to the details of an existing subscription within your Redis Enterprise Cloud account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThe following example shows how to use the name attribute to locate a subscription within your Redis Enterprise Cloud account.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@pulumi/rediscloud\";\n\nconst example = rediscloud.getSubscription({\n    name: \"My Example Subscription\",\n});\nexport const rediscloudSubscription = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nexample = rediscloud.get_subscription(name=\"My Example Subscription\")\npulumi.export(\"rediscloudSubscription\", example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = Pulumi.Rediscloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Rediscloud.GetSubscription.Invoke(new()\n    {\n        Name = \"My Example Subscription\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"rediscloudSubscription\"] = example.Apply(getSubscriptionResult =\u003e getSubscriptionResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rediscloud.LookupSubscription(ctx, \u0026rediscloud.LookupSubscriptionArgs{\n\t\t\tName: pulumi.StringRef(\"My Example Subscription\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rediscloudSubscription\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.RediscloudFunctions;\nimport com.pulumi.rediscloud.inputs.GetSubscriptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RediscloudFunctions.getSubscription(GetSubscriptionArgs.builder()\n            .name(\"My Example Subscription\")\n            .build());\n\n        ctx.export(\"rediscloudSubscription\", example.applyValue(getSubscriptionResult -\u003e getSubscriptionResult.id()));\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      Function: rediscloud:getSubscription\n      Arguments:\n        name: My Example Subscription\noutputs:\n  rediscloudSubscription: ${example.id}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSubscription.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the subscription to filter returned subscriptions\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSubscription.\n",
        "properties": {
          "cloudProviders": {
            "description": "A cloud provider object, documented below\n",
            "items": {
              "$ref": "#/types/rediscloud:index%2FgetSubscriptionCloudProvider:getSubscriptionCloudProvider"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "memoryStorage": {
            "description": "Memory storage preference: either ‘ram’ or a combination of 'ram-and-flash’\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "numberOfDatabases": {
            "description": "The number of databases that are linked to this subscription.\n",
            "type": "integer"
          },
          "paymentMethod": {
            "type": "string"
          },
          "paymentMethodId": {
            "description": "A valid payment method pre-defined in the current account\n",
            "type": "string"
          },
          "status": {
            "description": "Current status of the subscription\n",
            "type": "string"
          }
        },
        "required": [
          "cloudProviders",
          "id",
          "memoryStorage",
          "name",
          "numberOfDatabases",
          "paymentMethod",
          "paymentMethodId",
          "status"
        ],
        "type": "object"
      }
    },
    "rediscloud:index/getSubscriptionPeerings:getSubscriptionPeerings": {
      "description": "The Subscription Peerings data source allows access to a list of VPC peerings for a particular subscription.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThe following example returns a list of all VPC peering within a Subscription.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rediscloud from \"@pulumi/rediscloud\";\n\nconst example = rediscloud.getSubscriptionPeerings({\n    subscriptionId: \"1234\",\n});\nexport const rediscloudSubscriptionPeerings = example.then(example =\u003e example.peerings);\n```\n```python\nimport pulumi\nimport pulumi_rediscloud as rediscloud\n\nexample = rediscloud.get_subscription_peerings(subscription_id=\"1234\")\npulumi.export(\"rediscloudSubscriptionPeerings\", example.peerings)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rediscloud = Pulumi.Rediscloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Rediscloud.GetSubscriptionPeerings.Invoke(new()\n    {\n        SubscriptionId = \"1234\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"rediscloudSubscriptionPeerings\"] = example.Apply(getSubscriptionPeeringsResult =\u003e getSubscriptionPeeringsResult.Peerings),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/RedisLabs/pulumi-rediscloud/sdk/go/rediscloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rediscloud.GetSubscriptionPeerings(ctx, \u0026rediscloud.GetSubscriptionPeeringsArgs{\n\t\t\tSubscriptionId: \"1234\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rediscloudSubscriptionPeerings\", example.Peerings)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rediscloud.RediscloudFunctions;\nimport com.pulumi.rediscloud.inputs.GetSubscriptionPeeringsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RediscloudFunctions.getSubscriptionPeerings(GetSubscriptionPeeringsArgs.builder()\n            .subscriptionId(\"1234\")\n            .build());\n\n        ctx.export(\"rediscloudSubscriptionPeerings\", example.applyValue(getSubscriptionPeeringsResult -\u003e getSubscriptionPeeringsResult.peerings()));\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      Function: rediscloud:getSubscriptionPeerings\n      Arguments:\n        subscriptionId: '1234'\noutputs:\n  rediscloudSubscriptionPeerings: ${example.peerings}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSubscriptionPeerings.\n",
        "properties": {
          "status": {
            "type": "string",
            "description": "Current status of the peering - `initiating-request`, `pending-acceptance`, `active`, `inactive` or `failed`.\n"
          },
          "subscriptionId": {
            "type": "string",
            "description": "ID of the subscription that the peerings belongs to\n"
          }
        },
        "type": "object",
        "required": [
          "subscriptionId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getSubscriptionPeerings.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "peerings": {
            "description": "A list of subscription peerings.\n",
            "items": {
              "$ref": "#/types/rediscloud:index%2FgetSubscriptionPeeringsPeering:getSubscriptionPeeringsPeering"
            },
            "type": "array"
          },
          "status": {
            "description": "Current status of the peering - `initiating-request`, `pending-acceptance`, `active`, `inactive` or `failed`.\n",
            "type": "string"
          },
          "subscriptionId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "peerings",
          "subscriptionId"
        ],
        "type": "object"
      }
    }
  }
}
