diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9a524a9..95a36ef 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,34 +9,35 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Unshallow to restore tags run: git fetch --prune --unshallow - name: Set up Go - uses: actions/setup-go@v1 + uses: actions/setup-go@v5 with: - go-version: 1.23.x + go-version-file: sdk/go.mod - name: Set up .NET - uses: actions/setup-dotnet@v1 + uses: actions/setup-dotnet@v4 with: - dotnet-version: '6.0.x' + dotnet-version: '9.0.x' - name: Set up NodeJS - uses: actions/setup-node@v2 + uses: actions/setup-node@v4 with: registry-url: 'https://registry.npmjs.org' always-auth: true - name: Install pulumictl - run: curl -L https://github.com/pulumi/pulumictl/releases/download/v0.0.46/pulumictl-v0.0.46-linux-amd64.tar.gz | sudo tar zxv -C /usr/bin -f- pulumictl + run: curl -L https://github.com/pulumi/pulumictl/releases/download/v0.0.49/pulumictl-v0.0.49-linux-amd64.tar.gz | sudo tar zxv -C /usr/bin -f- pulumictl - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v2 + uses: goreleaser/goreleaser-action@v6 with: + distribution: goreleaser version: latest args: release --clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Push NuGet package run: | - dotnet nuget push nuget/**/*.nupkg --skip-duplicate --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.NUGET_API_KEY }} + dotnet nuget push nuget/**/*.nupkg --skip-duplicate --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.PULUMI_NUGET_KEY }} - name: Publish NPM package run: (cd ${{ github.workspace }}/sdk/nodejs/bin && yarn publish --access public) env: diff --git a/.golangci.yml b/.golangci.yml index ce66cf6..7e56f47 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,24 +1,5 @@ +version: "2" linters: - enable: - - deadcode - - errcheck - - goconst - - gofmt - - golint - - gosec - - govet - - ineffassign - - interfacer - - lll - - megacheck - - misspell - - nakedret - - structcheck - - unconvert - - varcheck - enable-all: false + default: standard run: - skip-files: - - schema.go - - pulumiManifest.go timeout: 10m diff --git a/package.json b/package.json index d96a01a..546f6a3 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { "name": "pulumi-eventstorecloud", - "version": "0.0.1", - "repository": "git@github.com/EventStore/pulumi-eventstorecloud", - "author": "Brock Shelton ", + "version": "0.2.18", + "repository": "git@github.com/kurrent-io/pulumi-eventstorecloud", + "author": "Kurrent Cloud Team ", "license": "Apache-2.0", "dependencies": { "js-yaml": "^4.1.0", "markdownlint": "^0.28.0" } -} \ No newline at end of file +} diff --git a/provider/cmd/pulumi-resource-eventstorecloud/schema.json b/provider/cmd/pulumi-resource-eventstorecloud/schema.json index 58f736b..0e0c9a9 100644 --- a/provider/cmd/pulumi-resource-eventstorecloud/schema.json +++ b/provider/cmd/pulumi-resource-eventstorecloud/schema.json @@ -402,6 +402,84 @@ "type": "object" } }, + "eventstorecloud:index/acl:Acl": { + "description": "Manages IP Access Lists\n", + "properties": { + "cidrBlocks": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" + } + }, + "description": "CIDR blocks allowed by the IP access list\n" + }, + "name": { + "type": "string", + "description": "Human-friendly name for the Acl\n" + }, + "projectId": { + "type": "string", + "description": "Project ID\n" + } + }, + "required": [ + "cidrBlocks", + "name", + "projectId" + ], + "inputProperties": { + "cidrBlocks": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" + } + }, + "description": "CIDR blocks allowed by the IP access list\n" + }, + "name": { + "type": "string", + "description": "Human-friendly name for the Acl\n" + }, + "projectId": { + "type": "string", + "description": "Project ID\n", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "cidrBlocks", + "projectId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Acl resources.\n", + "properties": { + "cidrBlocks": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" + } + }, + "description": "CIDR blocks allowed by the IP access list\n" + }, + "name": { + "type": "string", + "description": "Human-friendly name for the Acl\n" + }, + "projectId": { + "type": "string", + "description": "Project ID\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + } + }, "eventstorecloud:index/integration:Integration": { "description": "Manages integration resources, for example Slack or OpsGenie.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as eventstorecloud from \"@eventstore/pulumi-eventstorecloud\";\n\nconst opsgenieIssues = new eventstorecloud.Integration(\"opsgenieIssues\", {\n projectId: _var.project_id,\n description: \"create OpsGenie alerts from issues\",\n data: {\n sink: \"opsGenie\",\n api_key: \"\u003csecret OpsGenie key here\u003e\",\n source: \"issues\",\n },\n});\nconst slackNotifications = new eventstorecloud.Integration(\"slackNotifications\", {\n projectId: _var.project_id,\n description: \"send Slack a message when a notification happens\",\n data: {\n sink: \"slack\",\n token: \"\u003csecret token here\u003e\",\n channel_id: \"#esc-cluster-notifications\",\n source: \"notifications\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_eventstorecloud as eventstorecloud\n\nopsgenie_issues = eventstorecloud.Integration(\"opsgenieIssues\",\n project_id=var[\"project_id\"],\n description=\"create OpsGenie alerts from issues\",\n data={\n \"sink\": \"opsGenie\",\n \"api_key\": \"\u003csecret OpsGenie key here\u003e\",\n \"source\": \"issues\",\n })\nslack_notifications = eventstorecloud.Integration(\"slackNotifications\",\n project_id=var[\"project_id\"],\n description=\"send Slack a message when a notification happens\",\n data={\n \"sink\": \"slack\",\n \"token\": \"\u003csecret token here\u003e\",\n \"channel_id\": \"#esc-cluster-notifications\",\n \"source\": \"notifications\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing EventStoreCloud = Pulumi.EventStoreCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var opsgenieIssues = new EventStoreCloud.Integration(\"opsgenieIssues\", new()\n {\n ProjectId = @var.Project_id,\n Description = \"create OpsGenie alerts from issues\",\n Data = \n {\n { \"sink\", \"opsGenie\" },\n { \"api_key\", \"\u003csecret OpsGenie key here\u003e\" },\n { \"source\", \"issues\" },\n },\n });\n\n var slackNotifications = new EventStoreCloud.Integration(\"slackNotifications\", new()\n {\n ProjectId = @var.Project_id,\n Description = \"send Slack a message when a notification happens\",\n Data = \n {\n { \"sink\", \"slack\" },\n { \"token\", \"\u003csecret token here\u003e\" },\n { \"channel_id\", \"#esc-cluster-notifications\" },\n { \"source\", \"notifications\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/EventStore/pulumi-eventstorecloud/sdk/go/eventstorecloud\"\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 := eventstorecloud.NewIntegration(ctx, \"opsgenieIssues\", \u0026eventstorecloud.IntegrationArgs{\n\t\t\tProjectId: pulumi.Any(_var.Project_id),\n\t\t\tDescription: pulumi.String(\"create OpsGenie alerts from issues\"),\n\t\t\tData: pulumi.AnyMap{\n\t\t\t\t\"sink\": pulumi.Any(\"opsGenie\"),\n\t\t\t\t\"api_key\": pulumi.Any(\"\u003csecret OpsGenie key here\u003e\"),\n\t\t\t\t\"source\": pulumi.Any(\"issues\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventstorecloud.NewIntegration(ctx, \"slackNotifications\", \u0026eventstorecloud.IntegrationArgs{\n\t\t\tProjectId: pulumi.Any(_var.Project_id),\n\t\t\tDescription: pulumi.String(\"send Slack a message when a notification happens\"),\n\t\t\tData: pulumi.AnyMap{\n\t\t\t\t\"sink\": pulumi.Any(\"slack\"),\n\t\t\t\t\"token\": pulumi.Any(\"\u003csecret token here\u003e\"),\n\t\t\t\t\"channel_id\": pulumi.Any(\"#esc-cluster-notifications\"),\n\t\t\t\t\"source\": pulumi.Any(\"notifications\"),\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.eventstorecloud.Integration;\nimport com.pulumi.eventstorecloud.IntegrationArgs;\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 opsgenieIssues = new Integration(\"opsgenieIssues\", IntegrationArgs.builder() \n .projectId(var_.project_id())\n .description(\"create OpsGenie alerts from issues\")\n .data(Map.ofEntries(\n Map.entry(\"sink\", \"opsGenie\"),\n Map.entry(\"api_key\", \"\u003csecret OpsGenie key here\u003e\"),\n Map.entry(\"source\", \"issues\")\n ))\n .build());\n\n var slackNotifications = new Integration(\"slackNotifications\", IntegrationArgs.builder() \n .projectId(var_.project_id())\n .description(\"send Slack a message when a notification happens\")\n .data(Map.ofEntries(\n Map.entry(\"sink\", \"slack\"),\n Map.entry(\"token\", \"\u003csecret token here\u003e\"),\n Map.entry(\"channel_id\", \"#esc-cluster-notifications\"),\n Map.entry(\"source\", \"notifications\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n opsgenieIssues:\n type: eventstorecloud:Integration\n properties:\n projectId: ${var.project_id}\n description: create OpsGenie alerts from issues\n data:\n sink: opsGenie\n api_key: \u003csecret OpsGenie key here\u003e\n source: issues\n slackNotifications:\n type: eventstorecloud:Integration\n properties:\n projectId: ${var.project_id}\n description: send Slack a message when a notification happens\n data:\n sink: slack\n token: \u003csecret token here\u003e\n channel_id: '#esc-cluster-notifications'\n source: notifications\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n\n\n```sh\n $ pulumi import eventstorecloud:index/integration:Integration opsgenie_issues project_id:integration_id\n```\n\n ", "properties": { @@ -475,6 +553,10 @@ "eventstorecloud:index/managedCluster:ManagedCluster": { "description": "Manages EventStoreDB instances and clusters in Event Store Cloud\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as eventstorecloud from \"@eventstore/pulumi-eventstorecloud\";\nimport * as eventstorecloud from \"@pulumi/eventstorecloud\";\n\nconst exampleProject = eventstorecloud.getProject({\n name: \"Example Project\",\n});\nconst exampleNetwork = new eventstorecloud.Network(\"exampleNetwork\", {\n projectId: eventstorecloud_project.example.id,\n resourceProvider: \"aws\",\n region: \"us-west-2\",\n cidrBlock: \"172.21.0.0/16\",\n});\nconst exampleManagedCluster = new eventstorecloud.ManagedCluster(\"exampleManagedCluster\", {\n projectId: exampleNetwork.projectId,\n networkId: exampleNetwork.id,\n topology: \"three-node-multi-zone\",\n instanceType: \"F1\",\n diskSize: 24,\n diskType: \"gp3\",\n diskIops: 3000,\n diskThroughput: 125,\n serverVersion: \"23.10\",\n});\n```\n```python\nimport pulumi\nimport pulumi_eventstorecloud as eventstorecloud\n\nexample_project = eventstorecloud.get_project(name=\"Example Project\")\nexample_network = eventstorecloud.Network(\"exampleNetwork\",\n project_id=eventstorecloud_project[\"example\"][\"id\"],\n resource_provider=\"aws\",\n region=\"us-west-2\",\n cidr_block=\"172.21.0.0/16\")\nexample_managed_cluster = eventstorecloud.ManagedCluster(\"exampleManagedCluster\",\n project_id=example_network.project_id,\n network_id=example_network.id,\n topology=\"three-node-multi-zone\",\n instance_type=\"F1\",\n disk_size=24,\n disk_type=\"gp3\",\n disk_iops=3000,\n disk_throughput=125,\n server_version=\"23.10\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing EventStoreCloud = Pulumi.EventStoreCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleProject = EventStoreCloud.GetProject.Invoke(new()\n {\n Name = \"Example Project\",\n });\n\n var exampleNetwork = new EventStoreCloud.Network(\"exampleNetwork\", new()\n {\n ProjectId = eventstorecloud_project.Example.Id,\n ResourceProvider = \"aws\",\n Region = \"us-west-2\",\n CidrBlock = \"172.21.0.0/16\",\n });\n\n var exampleManagedCluster = new EventStoreCloud.ManagedCluster(\"exampleManagedCluster\", new()\n {\n ProjectId = exampleNetwork.ProjectId,\n NetworkId = exampleNetwork.Id,\n Topology = \"three-node-multi-zone\",\n InstanceType = \"F1\",\n DiskSize = 24,\n DiskType = \"gp3\",\n DiskIops = 3000,\n DiskThroughput = 125,\n ServerVersion = \"23.10\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/EventStore/pulumi-eventstorecloud/sdk/go/eventstorecloud\"\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 := eventstorecloud.LookupProject(ctx, \u0026eventstorecloud.LookupProjectArgs{\n\t\t\tName: \"Example Project\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := eventstorecloud.NewNetwork(ctx, \"exampleNetwork\", \u0026eventstorecloud.NetworkArgs{\n\t\t\tProjectId: pulumi.Any(eventstorecloud_project.Example.Id),\n\t\t\tResourceProvider: pulumi.String(\"aws\"),\n\t\t\tRegion: pulumi.String(\"us-west-2\"),\n\t\t\tCidrBlock: pulumi.String(\"172.21.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventstorecloud.NewManagedCluster(ctx, \"exampleManagedCluster\", \u0026eventstorecloud.ManagedClusterArgs{\n\t\t\tProjectId: exampleNetwork.ProjectId,\n\t\t\tNetworkId: exampleNetwork.ID(),\n\t\t\tTopology: pulumi.String(\"three-node-multi-zone\"),\n\t\t\tInstanceType: pulumi.String(\"F1\"),\n\t\t\tDiskSize: pulumi.Int(24),\n\t\t\tDiskType: pulumi.String(\"gp3\"),\n\t\t\tDiskIops: pulumi.Int(3000),\n\t\t\tDiskThroughput: pulumi.Int(125),\n\t\t\tServerVersion: pulumi.String(\"23.10\"),\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.eventstorecloud.EventstorecloudFunctions;\nimport com.pulumi.eventstorecloud.inputs.GetProjectArgs;\nimport com.pulumi.eventstorecloud.Network;\nimport com.pulumi.eventstorecloud.NetworkArgs;\nimport com.pulumi.eventstorecloud.ManagedCluster;\nimport com.pulumi.eventstorecloud.ManagedClusterArgs;\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 exampleProject = EventstorecloudFunctions.getProject(GetProjectArgs.builder()\n .name(\"Example Project\")\n .build());\n\n var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder() \n .projectId(eventstorecloud_project.example().id())\n .resourceProvider(\"aws\")\n .region(\"us-west-2\")\n .cidrBlock(\"172.21.0.0/16\")\n .build());\n\n var exampleManagedCluster = new ManagedCluster(\"exampleManagedCluster\", ManagedClusterArgs.builder() \n .projectId(exampleNetwork.projectId())\n .networkId(exampleNetwork.id())\n .topology(\"three-node-multi-zone\")\n .instanceType(\"F1\")\n .diskSize(24)\n .diskType(\"gp3\")\n .diskIops(3000)\n .diskThroughput(125)\n .serverVersion(\"23.10\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleNetwork:\n type: eventstorecloud:Network\n properties:\n projectId: ${eventstorecloud_project.example.id}\n resourceProvider: aws\n region: us-west-2\n cidrBlock: 172.21.0.0/16\n exampleManagedCluster:\n type: eventstorecloud:ManagedCluster\n properties:\n projectId: ${exampleNetwork.projectId}\n networkId: ${exampleNetwork.id}\n topology: three-node-multi-zone\n instanceType: F1\n diskSize: 24\n diskType: gp3\n diskIops: 3000\n diskThroughput: 125\n serverVersion: '23.10'\nvariables:\n exampleProject:\n fn::invoke:\n Function: eventstorecloud:getProject\n Arguments:\n name: Example Project\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n\n\n```sh\n $ pulumi import eventstorecloud:index/managedCluster:ManagedCluster example project_id:cluster_id\n```\n\n ", "properties": { + "aclId": { + "type": "string", + "description": "ID of the ACL if using public access\n" + }, "diskIops": { "type": "integer", "description": "Number of IOPS for storage, required if disk_type is `gp3`\n" @@ -497,7 +579,7 @@ }, "instanceType": { "type": "string", - "description": "Instance type of the managed cluster (find the list of valid values below)\n" + "description": "Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation.\n" }, "name": { "type": "string", @@ -519,6 +601,10 @@ "type": "boolean", "description": "Protection from an accidental cluster deletion Defaults to `false`.\n" }, + "publicAccess": { + "type": "boolean", + "description": "If true, the cluster is provisioned with a public endpoint\n" + }, "region": { "type": "string", "description": "Region in which the cluster was created. Determined by the region of the Network\n" @@ -555,6 +641,11 @@ "topology" ], "inputProperties": { + "aclId": { + "type": "string", + "description": "ID of the ACL if using public access\n", + "willReplaceOnChanges": true + }, "diskIops": { "type": "integer", "description": "Number of IOPS for storage, required if disk_type is `gp3`\n" @@ -573,8 +664,7 @@ }, "instanceType": { "type": "string", - "description": "Instance type of the managed cluster (find the list of valid values below)\n", - "willReplaceOnChanges": true + "description": "Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation.\n" }, "name": { "type": "string", @@ -599,6 +689,11 @@ "type": "boolean", "description": "Protection from an accidental cluster deletion Defaults to `false`.\n" }, + "publicAccess": { + "type": "boolean", + "description": "If true, the cluster is provisioned with a public endpoint\n", + "willReplaceOnChanges": true + }, "serverVersion": { "type": "string", "description": "Server version to provision (find the list of valid values below)\n" @@ -625,6 +720,11 @@ "stateInputs": { "description": "Input properties used for looking up and filtering ManagedCluster resources.\n", "properties": { + "aclId": { + "type": "string", + "description": "ID of the ACL if using public access\n", + "willReplaceOnChanges": true + }, "diskIops": { "type": "integer", "description": "Number of IOPS for storage, required if disk_type is `gp3`\n" @@ -647,8 +747,7 @@ }, "instanceType": { "type": "string", - "description": "Instance type of the managed cluster (find the list of valid values below)\n", - "willReplaceOnChanges": true + "description": "Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation.\n" }, "name": { "type": "string", @@ -673,6 +772,11 @@ "type": "boolean", "description": "Protection from an accidental cluster deletion Defaults to `false`.\n" }, + "publicAccess": { + "type": "boolean", + "description": "If true, the cluster is provisioned with a public endpoint\n", + "willReplaceOnChanges": true + }, "region": { "type": "string", "description": "Region in which the cluster was created. Determined by the region of the Network\n" @@ -713,6 +817,10 @@ "type": "string", "description": "Project ID\n" }, + "publicAccess": { + "type": "boolean", + "description": "Whether the network is able to be accessed from the public internet\n" + }, "region": { "type": "string", "description": "Provider region in which to provision the network\n" @@ -723,7 +831,6 @@ } }, "required": [ - "cidrBlock", "name", "projectId", "region", @@ -744,6 +851,11 @@ "description": "Project ID\n", "willReplaceOnChanges": true }, + "publicAccess": { + "type": "boolean", + "description": "Whether the network is able to be accessed from the public internet\n", + "willReplaceOnChanges": true + }, "region": { "type": "string", "description": "Provider region in which to provision the network\n", @@ -756,7 +868,6 @@ } }, "requiredInputs": [ - "cidrBlock", "projectId", "region", "resourceProvider" @@ -778,6 +889,11 @@ "description": "Project ID\n", "willReplaceOnChanges": true }, + "publicAccess": { + "type": "boolean", + "description": "Whether the network is able to be accessed from the public internet\n", + "willReplaceOnChanges": true + }, "region": { "type": "string", "description": "Provider region in which to provision the network\n", diff --git a/sdk/dotnet/Acl.cs b/sdk/dotnet/Acl.cs new file mode 100644 index 0000000..d100b98 --- /dev/null +++ b/sdk/dotnet/Acl.cs @@ -0,0 +1,144 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.EventStoreCloud +{ + /// + /// Manages IP Access Lists + /// + [EventStoreCloudResourceType("eventstorecloud:index/acl:Acl")] + public partial class Acl : global::Pulumi.CustomResource + { + /// + /// CIDR blocks allowed by the IP access list + /// + [Output("cidrBlocks")] + public Output>> CidrBlocks { get; private set; } = null!; + + /// + /// Human-friendly name for the Acl + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Project ID + /// + [Output("projectId")] + public Output ProjectId { get; private set; } = null!; + + + /// + /// Create a Acl resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public Acl(string name, AclArgs args, CustomResourceOptions? options = null) + : base("eventstorecloud:index/acl:Acl", name, args ?? new AclArgs(), MakeResourceOptions(options, "")) + { + } + + private Acl(string name, Input id, AclState? state = null, CustomResourceOptions? options = null) + : base("eventstorecloud:index/acl:Acl", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/EventStore", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing Acl resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static Acl Get(string name, Input id, AclState? state = null, CustomResourceOptions? options = null) + { + return new Acl(name, id, state, options); + } + } + + public sealed class AclArgs : global::Pulumi.ResourceArgs + { + [Input("cidrBlocks", required: true)] + private InputList>? _cidrBlocks; + + /// + /// CIDR blocks allowed by the IP access list + /// + public InputList> CidrBlocks + { + get => _cidrBlocks ?? (_cidrBlocks = new InputList>()); + set => _cidrBlocks = value; + } + + /// + /// Human-friendly name for the Acl + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Project ID + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + public AclArgs() + { + } + public static new AclArgs Empty => new AclArgs(); + } + + public sealed class AclState : global::Pulumi.ResourceArgs + { + [Input("cidrBlocks")] + private InputList>? _cidrBlocks; + + /// + /// CIDR blocks allowed by the IP access list + /// + public InputList> CidrBlocks + { + get => _cidrBlocks ?? (_cidrBlocks = new InputList>()); + set => _cidrBlocks = value; + } + + /// + /// Human-friendly name for the Acl + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Project ID + /// + [Input("projectId")] + public Input? ProjectId { get; set; } + + public AclState() + { + } + public static new AclState Empty => new AclState(); + } +} diff --git a/sdk/dotnet/ManagedCluster.cs b/sdk/dotnet/ManagedCluster.cs index 1c8895e..758e133 100644 --- a/sdk/dotnet/ManagedCluster.cs +++ b/sdk/dotnet/ManagedCluster.cs @@ -60,6 +60,12 @@ namespace Pulumi.EventStoreCloud [EventStoreCloudResourceType("eventstorecloud:index/managedCluster:ManagedCluster")] public partial class ManagedCluster : global::Pulumi.CustomResource { + /// + /// ID of the ACL if using public access + /// + [Output("aclId")] + public Output AclId { get; private set; } = null!; + /// /// Number of IOPS for storage, required if disk_type is `gp3` /// @@ -91,7 +97,7 @@ public partial class ManagedCluster : global::Pulumi.CustomResource public Output DnsName { get; private set; } = null!; /// - /// Instance type of the managed cluster (find the list of valid values below) + /// Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. /// [Output("instanceType")] public Output InstanceType { get; private set; } = null!; @@ -126,6 +132,12 @@ public partial class ManagedCluster : global::Pulumi.CustomResource [Output("protected")] public Output Protected { get; private set; } = null!; + /// + /// If true, the cluster is provisioned with a public endpoint + /// + [Output("publicAccess")] + public Output PublicAccess { get; private set; } = null!; + /// /// Region in which the cluster was created. Determined by the region of the Network /// @@ -203,6 +215,12 @@ public static ManagedCluster Get(string name, Input id, ManagedClusterSt public sealed class ManagedClusterArgs : global::Pulumi.ResourceArgs { + /// + /// ID of the ACL if using public access + /// + [Input("aclId")] + public Input? AclId { get; set; } + /// /// Number of IOPS for storage, required if disk_type is `gp3` /// @@ -228,7 +246,7 @@ public sealed class ManagedClusterArgs : global::Pulumi.ResourceArgs public Input DiskType { get; set; } = null!; /// - /// Instance type of the managed cluster (find the list of valid values below) + /// Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. /// [Input("instanceType", required: true)] public Input InstanceType { get; set; } = null!; @@ -263,6 +281,12 @@ public sealed class ManagedClusterArgs : global::Pulumi.ResourceArgs [Input("protected")] public Input? Protected { get; set; } + /// + /// If true, the cluster is provisioned with a public endpoint + /// + [Input("publicAccess")] + public Input? PublicAccess { get; set; } + /// /// Server version to provision (find the list of valid values below) /// @@ -289,6 +313,12 @@ public ManagedClusterArgs() public sealed class ManagedClusterState : global::Pulumi.ResourceArgs { + /// + /// ID of the ACL if using public access + /// + [Input("aclId")] + public Input? AclId { get; set; } + /// /// Number of IOPS for storage, required if disk_type is `gp3` /// @@ -320,7 +350,7 @@ public sealed class ManagedClusterState : global::Pulumi.ResourceArgs public Input? DnsName { get; set; } /// - /// Instance type of the managed cluster (find the list of valid values below) + /// Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. /// [Input("instanceType")] public Input? InstanceType { get; set; } @@ -355,6 +385,12 @@ public sealed class ManagedClusterState : global::Pulumi.ResourceArgs [Input("protected")] public Input? Protected { get; set; } + /// + /// If true, the cluster is provisioned with a public endpoint + /// + [Input("publicAccess")] + public Input? PublicAccess { get; set; } + /// /// Region in which the cluster was created. Determined by the region of the Network /// diff --git a/sdk/dotnet/Network.cs b/sdk/dotnet/Network.cs index 6b486a7..bf11d3c 100644 --- a/sdk/dotnet/Network.cs +++ b/sdk/dotnet/Network.cs @@ -48,7 +48,7 @@ public partial class Network : global::Pulumi.CustomResource /// Address space of the network in CIDR block notation /// [Output("cidrBlock")] - public Output CidrBlock { get; private set; } = null!; + public Output CidrBlock { get; private set; } = null!; /// /// Human-friendly name for the network @@ -62,6 +62,12 @@ public partial class Network : global::Pulumi.CustomResource [Output("projectId")] public Output ProjectId { get; private set; } = null!; + /// + /// Whether the network is able to be accessed from the public internet + /// + [Output("publicAccess")] + public Output PublicAccess { get; private set; } = null!; + /// /// Provider region in which to provision the network /// @@ -124,8 +130,8 @@ public sealed class NetworkArgs : global::Pulumi.ResourceArgs /// /// Address space of the network in CIDR block notation /// - [Input("cidrBlock", required: true)] - public Input CidrBlock { get; set; } = null!; + [Input("cidrBlock")] + public Input? CidrBlock { get; set; } /// /// Human-friendly name for the network @@ -139,6 +145,12 @@ public sealed class NetworkArgs : global::Pulumi.ResourceArgs [Input("projectId", required: true)] public Input ProjectId { get; set; } = null!; + /// + /// Whether the network is able to be accessed from the public internet + /// + [Input("publicAccess")] + public Input? PublicAccess { get; set; } + /// /// Provider region in which to provision the network /// @@ -177,6 +189,12 @@ public sealed class NetworkState : global::Pulumi.ResourceArgs [Input("projectId")] public Input? ProjectId { get; set; } + /// + /// Whether the network is able to be accessed from the public internet + /// + [Input("publicAccess")] + public Input? PublicAccess { get; set; } + /// /// Provider region in which to provision the network /// diff --git a/sdk/go.mod b/sdk/go.mod index e37ca31..16890bf 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -1,5 +1,95 @@ module github.com/EventStore/pulumi-eventstorecloud/sdk -go 1.17 +go 1.24 -require github.com/pulumi/pulumi/sdk/v3 v3.4.0 +require ( + github.com/blang/semver v3.5.1+incompatible + github.com/pulumi/pulumi/sdk/v3 v3.173.0 +) + +require ( + dario.cat/mergo v1.0.2 // indirect + github.com/BurntSushi/toml v1.5.0 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/ProtonMail/go-crypto v1.3.0 // indirect + github.com/agext/levenshtein v1.2.3 // indirect + github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect + github.com/atotto/clipboard v0.1.4 // indirect + github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect + github.com/charmbracelet/bubbles v0.21.0 // indirect + github.com/charmbracelet/bubbletea v1.3.5 // indirect + github.com/charmbracelet/colorprofile v0.3.1 // indirect + github.com/charmbracelet/lipgloss v1.1.0 // indirect + github.com/charmbracelet/x/ansi v0.9.2 // indirect + github.com/charmbracelet/x/cellbuf v0.0.13 // indirect + github.com/charmbracelet/x/term v0.2.1 // indirect + github.com/cheggaaa/pb v1.0.29 // indirect + github.com/cloudflare/circl v1.6.1 // indirect + github.com/cyphar/filepath-securejoin v0.4.1 // indirect + github.com/djherbis/times v1.6.0 // indirect + github.com/emirpasic/gods v1.18.1 // indirect + github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect + github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect + github.com/go-git/go-billy/v5 v5.6.2 // indirect + github.com/go-git/go-git/v5 v5.16.0 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/glog v1.2.5 // indirect + github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect + github.com/hashicorp/hcl/v2 v2.23.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect + github.com/kevinburke/ssh_config v1.2.0 // indirect + github.com/lucasb-eyer/go-colorful v1.2.0 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-localereader v0.0.1 // indirect + github.com/mattn/go-runewidth v0.0.16 // indirect + github.com/mitchellh/go-ps v1.0.0 // indirect + github.com/mitchellh/go-wordwrap v1.0.1 // indirect + github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect + github.com/muesli/cancelreader v0.2.2 // indirect + github.com/muesli/termenv v0.16.0 // indirect + github.com/opentracing/basictracer-go v1.1.0 // indirect + github.com/opentracing/opentracing-go v1.2.0 // indirect + github.com/pgavlin/fx v0.1.6 // indirect + github.com/pjbgf/sha1cd v0.3.2 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pkg/term v1.1.0 // indirect + github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect + github.com/pulumi/esc v0.14.2 // indirect + github.com/rivo/uniseg v0.4.7 // indirect + github.com/rogpeppe/go-internal v1.14.1 // indirect + github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect + github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect + github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect + github.com/skeema/knownhosts v1.3.1 // indirect + github.com/spf13/cast v1.8.0 // indirect + github.com/spf13/cobra v1.9.1 // indirect + github.com/spf13/pflag v1.0.6 // indirect + github.com/stretchr/objx v0.2.0 // indirect + github.com/texttheater/golang-levenshtein v1.0.1 // indirect + github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect + github.com/uber/jaeger-lib v2.4.1+incompatible // indirect + github.com/xanzy/ssh-agent v0.3.3 // indirect + github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect + github.com/zclconf/go-cty v1.16.3 // indirect + go.uber.org/atomic v1.11.0 // indirect + golang.org/x/crypto v0.38.0 // indirect + golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 // indirect + golang.org/x/mod v0.24.0 // indirect + golang.org/x/net v0.40.0 // indirect + golang.org/x/sync v0.14.0 // indirect + golang.org/x/sys v0.33.0 // indirect + golang.org/x/term v0.32.0 // indirect + golang.org/x/text v0.25.0 // indirect + golang.org/x/tools v0.33.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a // indirect + google.golang.org/grpc v1.72.2 // indirect + google.golang.org/protobuf v1.36.6 // indirect + gopkg.in/warnings.v0 v0.1.2 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + lukechampine.com/frand v1.5.1 // indirect +) diff --git a/sdk/go.sum b/sdk/go.sum new file mode 100644 index 0000000..f2616bf --- /dev/null +++ b/sdk/go.sum @@ -0,0 +1,307 @@ +dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8= +dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA= +github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= +github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= +github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= +github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +github.com/ProtonMail/go-crypto v1.3.0 h1:ILq8+Sf5If5DCpHQp4PbZdS1J7HDFRXz/+xKBiRGFrw= +github.com/ProtonMail/go-crypto v1.3.0/go.mod h1:9whxjD8Rbs29b4XWbB8irEcE8KHMqaR2e7GWU1R+/PE= +github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= +github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= +github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= +github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= +github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= +github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= +github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= +github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= +github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= +github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= +github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/charmbracelet/bubbles v0.21.0 h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u6mfQdFs= +github.com/charmbracelet/bubbles v0.21.0/go.mod h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg= +github.com/charmbracelet/bubbletea v1.3.5 h1:JAMNLTbqMOhSwoELIr0qyP4VidFq72/6E9j7HHmRKQc= +github.com/charmbracelet/bubbletea v1.3.5/go.mod h1:TkCnmH+aBd4LrXhXcqrKiYwRs7qyQx5rBgH5fVY3v54= +github.com/charmbracelet/colorprofile v0.3.1 h1:k8dTHMd7fgw4bnFd7jXTLZrSU/CQrKnL3m+AxCzDz40= +github.com/charmbracelet/colorprofile v0.3.1/go.mod h1:/GkGusxNs8VB/RSOh3fu0TJmQ4ICMMPApIIVn0KszZ0= +github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY= +github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30= +github.com/charmbracelet/x/ansi v0.9.2 h1:92AGsQmNTRMzuzHEYfCdjQeUzTrgE1vfO5/7fEVoXdY= +github.com/charmbracelet/x/ansi v0.9.2/go.mod h1:3RQDQ6lDnROptfpWuUVIUG64bD2g2BgntdxH0Ya5TeE= +github.com/charmbracelet/x/cellbuf v0.0.13 h1:/KBBKHuVRbq1lYx5BzEHBAFBP8VcQzJejZ/IA3iR28k= +github.com/charmbracelet/x/cellbuf v0.0.13/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs= +github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ= +github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= +github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo= +github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30= +github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0= +github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= +github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s= +github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/djherbis/times v1.6.0 h1:w2ctJ92J8fBvWPxugmXIv7Nz7Q3iDMKNx9v5ocVH20c= +github.com/djherbis/times v1.6.0/go.mod h1:gOHeRAz2h+VJNZ5Gmc/o7iD9k4wW7NMVqieYCY99oc0= +github.com/elazarl/goproxy v1.7.2 h1:Y2o6urb7Eule09PjlhQRGNsqRfPmYI3KKQLFpCAV3+o= +github.com/elazarl/goproxy v1.7.2/go.mod h1:82vkLNir0ALaW14Rc399OTTjyNREgmdL2cVoIbS6XaE= +github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= +github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= +github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4= +github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM= +github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s= +github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c= +github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= +github.com/go-git/go-billy/v5 v5.6.2 h1:6Q86EsPXMa7c3YZ3aLAQsMA0VlWmy43r6FHqa/UNbRM= +github.com/go-git/go-billy/v5 v5.6.2/go.mod h1:rcFC2rAsp/erv7CMz9GczHcuD0D32fWzH+MJAU+jaUU= +github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= +github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= +github.com/go-git/go-git/v5 v5.16.0 h1:k3kuOEpkc0DeY7xlL6NaaNg39xdgQbtH5mwCafHO9AQ= +github.com/go-git/go-git/v5 v5.16.0/go.mod h1:4Ge4alE/5gPs30F2H1esi2gPd69R0C39lolkucHBOp8= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v1.2.5 h1:DrW6hGnjIhtvhOIiAKT6Psh/Kd/ldepEa81DKeiRJ5I= +github.com/golang/glog v1.2.5/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= +github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ= +github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU= +github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl/v2 v2.23.0 h1:Fphj1/gCylPxHutVSEOf2fBOh1VE4AuLV7+kbJf3qos= +github.com/hashicorp/hcl/v2 v2.23.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= +github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= +github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= +github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= +github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= +github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= +github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= +github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= +github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= +github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= +github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= +github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= +github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= +github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc= +github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk= +github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= +github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= +github.com/opentracing/basictracer-go v1.1.0 h1:Oa1fTSBvAl8pa3U+IJYqrKm0NALwH9OsgwOqDv4xJW0= +github.com/opentracing/basictracer-go v1.1.0/go.mod h1:V2HZueSJEp879yv285Aap1BS69fQMD+MNP1mRs6mBQc= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= +github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= +github.com/pgavlin/fx v0.1.6 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU= +github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M= +github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4= +github.com/pjbgf/sha1cd v0.3.2/go.mod h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk= +github.com/pkg/term v1.1.0/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0= +github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= +github.com/pulumi/esc v0.14.2 h1:xHpjJXzKs1hk/QPpgwe1Rmif3VWA0QcZ7jDvTFYX/jM= +github.com/pulumi/esc v0.14.2/go.mod h1:0dNzCWIiRUmdfFrhHdeBzU4GiDPBhSfpeWDNApZwZ08= +github.com/pulumi/pulumi/sdk/v3 v3.173.0 h1:0ChPOOCOb/MnR0Yi3X2tU4aDQhFPyQ78CCv1aqPv70Q= +github.com/pulumi/pulumi/sdk/v3 v3.173.0/go.mod h1:AD2BrIxFG4wdCLCFODrOasXhURwrD/8hHrwBcjzyU9Y= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI= +github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+ePHsJ1keEjQtpvf9HHw0f4ZeJ0TLRsxhunSI2hYJSs= +github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4= +github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY= +github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= +github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= +github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/skeema/knownhosts v1.3.1 h1:X2osQ+RAjK76shCbvhHHHVl3ZlgDm8apHEHFqRjnBY8= +github.com/skeema/knownhosts v1.3.1/go.mod h1:r7KTdC8l4uxWRyK2TpQZ/1o5HaSzh06ePQNxPwTcfiY= +github.com/spf13/cast v1.8.0 h1:gEN9K4b8Xws4EX0+a0reLmhq8moKn7ntRlQYgjPeCDk= +github.com/spf13/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= +github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= +github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= +github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= +github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U= +github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8= +github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= +github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= +github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= +github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= +github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/zclconf/go-cty v1.16.3 h1:osr++gw2T61A8KVYHoQiFbFd1Lh3JOCXc/jFLJXKTxk= +github.com/zclconf/go-cty v1.16.3/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= +go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= +go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= +go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= +go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= +go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= +go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= +go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= +go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= +go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= +golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= +golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 h1:y5zboxd6LQAqYIhHnB48p0ByQ/GnQx2BE33L8BOHQkI= +golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6/go.mod h1:U6Lno4MTRCDY+Ba7aCcauB9T60gsv5s4ralQzP72ZoQ= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= +golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= +golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= +golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= +golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= +golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= +golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a h1:v2PbRU4K3llS09c7zodFpNePeamkAwG3mPrAery9VeE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/grpc v1.72.2 h1:TdbGzwb82ty4OusHWepvFWGLgIbNo1/SUynEN0ssqv8= +google.golang.org/grpc v1.72.2/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= +gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +lukechampine.com/frand v1.5.1 h1:fg0eRtdmGFIxhP5zQJzM1lFDbD6CUfu/f+7WgAZd5/w= +lukechampine.com/frand v1.5.1/go.mod h1:4VstaWc2plN4Mjr10chUD46RAVGWhpkZ5Nja8+Azp0Q= +pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA= +pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= diff --git a/sdk/go/eventstorecloud/acl.go b/sdk/go/eventstorecloud/acl.go new file mode 100644 index 0000000..0a2884b --- /dev/null +++ b/sdk/go/eventstorecloud/acl.go @@ -0,0 +1,252 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package eventstorecloud + +import ( + "context" + "reflect" + + "errors" + "github.com/EventStore/pulumi-eventstorecloud/sdk/go/eventstorecloud/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages IP Access Lists +type Acl struct { + pulumi.CustomResourceState + + // CIDR blocks allowed by the IP access list + CidrBlocks pulumi.MapArrayOutput `pulumi:"cidrBlocks"` + // Human-friendly name for the Acl + Name pulumi.StringOutput `pulumi:"name"` + // Project ID + ProjectId pulumi.StringOutput `pulumi:"projectId"` +} + +// NewAcl registers a new resource with the given unique name, arguments, and options. +func NewAcl(ctx *pulumi.Context, + name string, args *AclArgs, opts ...pulumi.ResourceOption) (*Acl, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.CidrBlocks == nil { + return nil, errors.New("invalid value for required argument 'CidrBlocks'") + } + if args.ProjectId == nil { + return nil, errors.New("invalid value for required argument 'ProjectId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Acl + err := ctx.RegisterResource("eventstorecloud:index/acl:Acl", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAcl gets an existing Acl resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAcl(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AclState, opts ...pulumi.ResourceOption) (*Acl, error) { + var resource Acl + err := ctx.ReadResource("eventstorecloud:index/acl:Acl", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Acl resources. +type aclState struct { + // CIDR blocks allowed by the IP access list + CidrBlocks []map[string]interface{} `pulumi:"cidrBlocks"` + // Human-friendly name for the Acl + Name *string `pulumi:"name"` + // Project ID + ProjectId *string `pulumi:"projectId"` +} + +type AclState struct { + // CIDR blocks allowed by the IP access list + CidrBlocks pulumi.MapArrayInput + // Human-friendly name for the Acl + Name pulumi.StringPtrInput + // Project ID + ProjectId pulumi.StringPtrInput +} + +func (AclState) ElementType() reflect.Type { + return reflect.TypeOf((*aclState)(nil)).Elem() +} + +type aclArgs struct { + // CIDR blocks allowed by the IP access list + CidrBlocks []map[string]interface{} `pulumi:"cidrBlocks"` + // Human-friendly name for the Acl + Name *string `pulumi:"name"` + // Project ID + ProjectId string `pulumi:"projectId"` +} + +// The set of arguments for constructing a Acl resource. +type AclArgs struct { + // CIDR blocks allowed by the IP access list + CidrBlocks pulumi.MapArrayInput + // Human-friendly name for the Acl + Name pulumi.StringPtrInput + // Project ID + ProjectId pulumi.StringInput +} + +func (AclArgs) ElementType() reflect.Type { + return reflect.TypeOf((*aclArgs)(nil)).Elem() +} + +type AclInput interface { + pulumi.Input + + ToAclOutput() AclOutput + ToAclOutputWithContext(ctx context.Context) AclOutput +} + +func (*Acl) ElementType() reflect.Type { + return reflect.TypeOf((**Acl)(nil)).Elem() +} + +func (i *Acl) ToAclOutput() AclOutput { + return i.ToAclOutputWithContext(context.Background()) +} + +func (i *Acl) ToAclOutputWithContext(ctx context.Context) AclOutput { + return pulumi.ToOutputWithContext(ctx, i).(AclOutput) +} + +// AclArrayInput is an input type that accepts AclArray and AclArrayOutput values. +// You can construct a concrete instance of `AclArrayInput` via: +// +// AclArray{ AclArgs{...} } +type AclArrayInput interface { + pulumi.Input + + ToAclArrayOutput() AclArrayOutput + ToAclArrayOutputWithContext(context.Context) AclArrayOutput +} + +type AclArray []AclInput + +func (AclArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Acl)(nil)).Elem() +} + +func (i AclArray) ToAclArrayOutput() AclArrayOutput { + return i.ToAclArrayOutputWithContext(context.Background()) +} + +func (i AclArray) ToAclArrayOutputWithContext(ctx context.Context) AclArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AclArrayOutput) +} + +// AclMapInput is an input type that accepts AclMap and AclMapOutput values. +// You can construct a concrete instance of `AclMapInput` via: +// +// AclMap{ "key": AclArgs{...} } +type AclMapInput interface { + pulumi.Input + + ToAclMapOutput() AclMapOutput + ToAclMapOutputWithContext(context.Context) AclMapOutput +} + +type AclMap map[string]AclInput + +func (AclMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Acl)(nil)).Elem() +} + +func (i AclMap) ToAclMapOutput() AclMapOutput { + return i.ToAclMapOutputWithContext(context.Background()) +} + +func (i AclMap) ToAclMapOutputWithContext(ctx context.Context) AclMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(AclMapOutput) +} + +type AclOutput struct{ *pulumi.OutputState } + +func (AclOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Acl)(nil)).Elem() +} + +func (o AclOutput) ToAclOutput() AclOutput { + return o +} + +func (o AclOutput) ToAclOutputWithContext(ctx context.Context) AclOutput { + return o +} + +// CIDR blocks allowed by the IP access list +func (o AclOutput) CidrBlocks() pulumi.MapArrayOutput { + return o.ApplyT(func(v *Acl) pulumi.MapArrayOutput { return v.CidrBlocks }).(pulumi.MapArrayOutput) +} + +// Human-friendly name for the Acl +func (o AclOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Acl) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Project ID +func (o AclOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v *Acl) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput) +} + +type AclArrayOutput struct{ *pulumi.OutputState } + +func (AclArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Acl)(nil)).Elem() +} + +func (o AclArrayOutput) ToAclArrayOutput() AclArrayOutput { + return o +} + +func (o AclArrayOutput) ToAclArrayOutputWithContext(ctx context.Context) AclArrayOutput { + return o +} + +func (o AclArrayOutput) Index(i pulumi.IntInput) AclOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Acl { + return vs[0].([]*Acl)[vs[1].(int)] + }).(AclOutput) +} + +type AclMapOutput struct{ *pulumi.OutputState } + +func (AclMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Acl)(nil)).Elem() +} + +func (o AclMapOutput) ToAclMapOutput() AclMapOutput { + return o +} + +func (o AclMapOutput) ToAclMapOutputWithContext(ctx context.Context) AclMapOutput { + return o +} + +func (o AclMapOutput) MapIndex(k pulumi.StringInput) AclOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Acl { + return vs[0].(map[string]*Acl)[vs[1].(string)] + }).(AclOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AclInput)(nil)).Elem(), &Acl{}) + pulumi.RegisterInputType(reflect.TypeOf((*AclArrayInput)(nil)).Elem(), AclArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AclMapInput)(nil)).Elem(), AclMap{}) + pulumi.RegisterOutputType(AclOutput{}) + pulumi.RegisterOutputType(AclArrayOutput{}) + pulumi.RegisterOutputType(AclMapOutput{}) +} diff --git a/sdk/go/eventstorecloud/init.go b/sdk/go/eventstorecloud/init.go index f151f11..15ddb0a 100644 --- a/sdk/go/eventstorecloud/init.go +++ b/sdk/go/eventstorecloud/init.go @@ -25,6 +25,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &AWSCloudWatchLogsIntegration{} case "eventstorecloud:index/aWSCloudWatchMetricsIntegration:AWSCloudWatchMetricsIntegration": r = &AWSCloudWatchMetricsIntegration{} + case "eventstorecloud:index/acl:Acl": + r = &Acl{} case "eventstorecloud:index/integration:Integration": r = &Integration{} case "eventstorecloud:index/managedCluster:ManagedCluster": @@ -78,6 +80,11 @@ func init() { "index/aWSCloudWatchMetricsIntegration", &module{version}, ) + pulumi.RegisterResourceModule( + "eventstorecloud", + "index/acl", + &module{version}, + ) pulumi.RegisterResourceModule( "eventstorecloud", "index/integration", diff --git a/sdk/go/eventstorecloud/managedCluster.go b/sdk/go/eventstorecloud/managedCluster.go index a024df5..cb0bde9 100644 --- a/sdk/go/eventstorecloud/managedCluster.go +++ b/sdk/go/eventstorecloud/managedCluster.go @@ -73,6 +73,8 @@ import ( type ManagedCluster struct { pulumi.CustomResourceState + // ID of the ACL if using public access + AclId pulumi.StringPtrOutput `pulumi:"aclId"` // Number of IOPS for storage, required if diskType is `gp3` DiskIops pulumi.IntPtrOutput `pulumi:"diskIops"` // Size of the data disks, in gigabytes @@ -83,7 +85,7 @@ type ManagedCluster struct { DiskType pulumi.StringOutput `pulumi:"diskType"` // DNS address of the cluster DnsName pulumi.StringOutput `pulumi:"dnsName"` - // Instance type of the managed cluster (find the list of valid values below) + // Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. InstanceType pulumi.StringOutput `pulumi:"instanceType"` // Name of the managed cluster Name pulumi.StringOutput `pulumi:"name"` @@ -95,6 +97,8 @@ type ManagedCluster struct { ProjectionLevel pulumi.StringPtrOutput `pulumi:"projectionLevel"` // Protection from an accidental cluster deletion Defaults to `false`. Protected pulumi.BoolPtrOutput `pulumi:"protected"` + // If true, the cluster is provisioned with a public endpoint + PublicAccess pulumi.BoolPtrOutput `pulumi:"publicAccess"` // Region in which the cluster was created. Determined by the region of the Network Region pulumi.StringOutput `pulumi:"region"` // Provider in which the cluster was created. Determined by the provider of the Network. @@ -158,6 +162,8 @@ func GetManagedCluster(ctx *pulumi.Context, // Input properties used for looking up and filtering ManagedCluster resources. type managedClusterState struct { + // ID of the ACL if using public access + AclId *string `pulumi:"aclId"` // Number of IOPS for storage, required if diskType is `gp3` DiskIops *int `pulumi:"diskIops"` // Size of the data disks, in gigabytes @@ -168,7 +174,7 @@ type managedClusterState struct { DiskType *string `pulumi:"diskType"` // DNS address of the cluster DnsName *string `pulumi:"dnsName"` - // Instance type of the managed cluster (find the list of valid values below) + // Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. InstanceType *string `pulumi:"instanceType"` // Name of the managed cluster Name *string `pulumi:"name"` @@ -180,6 +186,8 @@ type managedClusterState struct { ProjectionLevel *string `pulumi:"projectionLevel"` // Protection from an accidental cluster deletion Defaults to `false`. Protected *bool `pulumi:"protected"` + // If true, the cluster is provisioned with a public endpoint + PublicAccess *bool `pulumi:"publicAccess"` // Region in which the cluster was created. Determined by the region of the Network Region *string `pulumi:"region"` // Provider in which the cluster was created. Determined by the provider of the Network. @@ -193,6 +201,8 @@ type managedClusterState struct { } type ManagedClusterState struct { + // ID of the ACL if using public access + AclId pulumi.StringPtrInput // Number of IOPS for storage, required if diskType is `gp3` DiskIops pulumi.IntPtrInput // Size of the data disks, in gigabytes @@ -203,7 +213,7 @@ type ManagedClusterState struct { DiskType pulumi.StringPtrInput // DNS address of the cluster DnsName pulumi.StringPtrInput - // Instance type of the managed cluster (find the list of valid values below) + // Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. InstanceType pulumi.StringPtrInput // Name of the managed cluster Name pulumi.StringPtrInput @@ -215,6 +225,8 @@ type ManagedClusterState struct { ProjectionLevel pulumi.StringPtrInput // Protection from an accidental cluster deletion Defaults to `false`. Protected pulumi.BoolPtrInput + // If true, the cluster is provisioned with a public endpoint + PublicAccess pulumi.BoolPtrInput // Region in which the cluster was created. Determined by the region of the Network Region pulumi.StringPtrInput // Provider in which the cluster was created. Determined by the provider of the Network. @@ -232,6 +244,8 @@ func (ManagedClusterState) ElementType() reflect.Type { } type managedClusterArgs struct { + // ID of the ACL if using public access + AclId *string `pulumi:"aclId"` // Number of IOPS for storage, required if diskType is `gp3` DiskIops *int `pulumi:"diskIops"` // Size of the data disks, in gigabytes @@ -240,7 +254,7 @@ type managedClusterArgs struct { DiskThroughput *int `pulumi:"diskThroughput"` // Storage class of the data disks (find the list of valid values below) DiskType string `pulumi:"diskType"` - // Instance type of the managed cluster (find the list of valid values below) + // Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. InstanceType string `pulumi:"instanceType"` // Name of the managed cluster Name *string `pulumi:"name"` @@ -252,6 +266,8 @@ type managedClusterArgs struct { ProjectionLevel *string `pulumi:"projectionLevel"` // Protection from an accidental cluster deletion Defaults to `false`. Protected *bool `pulumi:"protected"` + // If true, the cluster is provisioned with a public endpoint + PublicAccess *bool `pulumi:"publicAccess"` // Server version to provision (find the list of valid values below) ServerVersion string `pulumi:"serverVersion"` // Server version tag to provision (find the list of valid values below). A higher server*version*tag will prompt an upgrade. @@ -262,6 +278,8 @@ type managedClusterArgs struct { // The set of arguments for constructing a ManagedCluster resource. type ManagedClusterArgs struct { + // ID of the ACL if using public access + AclId pulumi.StringPtrInput // Number of IOPS for storage, required if diskType is `gp3` DiskIops pulumi.IntPtrInput // Size of the data disks, in gigabytes @@ -270,7 +288,7 @@ type ManagedClusterArgs struct { DiskThroughput pulumi.IntPtrInput // Storage class of the data disks (find the list of valid values below) DiskType pulumi.StringInput - // Instance type of the managed cluster (find the list of valid values below) + // Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. InstanceType pulumi.StringInput // Name of the managed cluster Name pulumi.StringPtrInput @@ -282,6 +300,8 @@ type ManagedClusterArgs struct { ProjectionLevel pulumi.StringPtrInput // Protection from an accidental cluster deletion Defaults to `false`. Protected pulumi.BoolPtrInput + // If true, the cluster is provisioned with a public endpoint + PublicAccess pulumi.BoolPtrInput // Server version to provision (find the list of valid values below) ServerVersion pulumi.StringInput // Server version tag to provision (find the list of valid values below). A higher server*version*tag will prompt an upgrade. @@ -377,6 +397,11 @@ func (o ManagedClusterOutput) ToManagedClusterOutputWithContext(ctx context.Cont return o } +// ID of the ACL if using public access +func (o ManagedClusterOutput) AclId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ManagedCluster) pulumi.StringPtrOutput { return v.AclId }).(pulumi.StringPtrOutput) +} + // Number of IOPS for storage, required if diskType is `gp3` func (o ManagedClusterOutput) DiskIops() pulumi.IntPtrOutput { return o.ApplyT(func(v *ManagedCluster) pulumi.IntPtrOutput { return v.DiskIops }).(pulumi.IntPtrOutput) @@ -402,7 +427,7 @@ func (o ManagedClusterOutput) DnsName() pulumi.StringOutput { return o.ApplyT(func(v *ManagedCluster) pulumi.StringOutput { return v.DnsName }).(pulumi.StringOutput) } -// Instance type of the managed cluster (find the list of valid values below) +// Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. func (o ManagedClusterOutput) InstanceType() pulumi.StringOutput { return o.ApplyT(func(v *ManagedCluster) pulumi.StringOutput { return v.InstanceType }).(pulumi.StringOutput) } @@ -432,6 +457,11 @@ func (o ManagedClusterOutput) Protected() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ManagedCluster) pulumi.BoolPtrOutput { return v.Protected }).(pulumi.BoolPtrOutput) } +// If true, the cluster is provisioned with a public endpoint +func (o ManagedClusterOutput) PublicAccess() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ManagedCluster) pulumi.BoolPtrOutput { return v.PublicAccess }).(pulumi.BoolPtrOutput) +} + // Region in which the cluster was created. Determined by the region of the Network func (o ManagedClusterOutput) Region() pulumi.StringOutput { return o.ApplyT(func(v *ManagedCluster) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) diff --git a/sdk/go/eventstorecloud/network.go b/sdk/go/eventstorecloud/network.go index 9cc8016..ec0bcaf 100644 --- a/sdk/go/eventstorecloud/network.go +++ b/sdk/go/eventstorecloud/network.go @@ -58,11 +58,13 @@ type Network struct { pulumi.CustomResourceState // Address space of the network in CIDR block notation - CidrBlock pulumi.StringOutput `pulumi:"cidrBlock"` + CidrBlock pulumi.StringPtrOutput `pulumi:"cidrBlock"` // Human-friendly name for the network Name pulumi.StringOutput `pulumi:"name"` // Project ID ProjectId pulumi.StringOutput `pulumi:"projectId"` + // Whether the network is able to be accessed from the public internet + PublicAccess pulumi.BoolPtrOutput `pulumi:"publicAccess"` // Provider region in which to provision the network Region pulumi.StringOutput `pulumi:"region"` // Cloud Provider in which to provision the network. @@ -76,9 +78,6 @@ func NewNetwork(ctx *pulumi.Context, return nil, errors.New("missing one or more required arguments") } - if args.CidrBlock == nil { - return nil, errors.New("invalid value for required argument 'CidrBlock'") - } if args.ProjectId == nil { return nil, errors.New("invalid value for required argument 'ProjectId'") } @@ -117,6 +116,8 @@ type networkState struct { Name *string `pulumi:"name"` // Project ID ProjectId *string `pulumi:"projectId"` + // Whether the network is able to be accessed from the public internet + PublicAccess *bool `pulumi:"publicAccess"` // Provider region in which to provision the network Region *string `pulumi:"region"` // Cloud Provider in which to provision the network. @@ -130,6 +131,8 @@ type NetworkState struct { Name pulumi.StringPtrInput // Project ID ProjectId pulumi.StringPtrInput + // Whether the network is able to be accessed from the public internet + PublicAccess pulumi.BoolPtrInput // Provider region in which to provision the network Region pulumi.StringPtrInput // Cloud Provider in which to provision the network. @@ -142,11 +145,13 @@ func (NetworkState) ElementType() reflect.Type { type networkArgs struct { // Address space of the network in CIDR block notation - CidrBlock string `pulumi:"cidrBlock"` + CidrBlock *string `pulumi:"cidrBlock"` // Human-friendly name for the network Name *string `pulumi:"name"` // Project ID ProjectId string `pulumi:"projectId"` + // Whether the network is able to be accessed from the public internet + PublicAccess *bool `pulumi:"publicAccess"` // Provider region in which to provision the network Region string `pulumi:"region"` // Cloud Provider in which to provision the network. @@ -156,11 +161,13 @@ type networkArgs struct { // The set of arguments for constructing a Network resource. type NetworkArgs struct { // Address space of the network in CIDR block notation - CidrBlock pulumi.StringInput + CidrBlock pulumi.StringPtrInput // Human-friendly name for the network Name pulumi.StringPtrInput // Project ID ProjectId pulumi.StringInput + // Whether the network is able to be accessed from the public internet + PublicAccess pulumi.BoolPtrInput // Provider region in which to provision the network Region pulumi.StringInput // Cloud Provider in which to provision the network. @@ -255,8 +262,8 @@ func (o NetworkOutput) ToNetworkOutputWithContext(ctx context.Context) NetworkOu } // Address space of the network in CIDR block notation -func (o NetworkOutput) CidrBlock() pulumi.StringOutput { - return o.ApplyT(func(v *Network) pulumi.StringOutput { return v.CidrBlock }).(pulumi.StringOutput) +func (o NetworkOutput) CidrBlock() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Network) pulumi.StringPtrOutput { return v.CidrBlock }).(pulumi.StringPtrOutput) } // Human-friendly name for the network @@ -269,6 +276,11 @@ func (o NetworkOutput) ProjectId() pulumi.StringOutput { return o.ApplyT(func(v *Network) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput) } +// Whether the network is able to be accessed from the public internet +func (o NetworkOutput) PublicAccess() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Network) pulumi.BoolPtrOutput { return v.PublicAccess }).(pulumi.BoolPtrOutput) +} + // Provider region in which to provision the network func (o NetworkOutput) Region() pulumi.StringOutput { return o.ApplyT(func(v *Network) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) diff --git a/sdk/nodejs/acl.ts b/sdk/nodejs/acl.ts new file mode 100644 index 0000000..db341c7 --- /dev/null +++ b/sdk/nodejs/acl.ts @@ -0,0 +1,118 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * Manages IP Access Lists + */ +export class Acl extends pulumi.CustomResource { + /** + * Get an existing Acl resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: AclState, opts?: pulumi.CustomResourceOptions): Acl { + return new Acl(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'eventstorecloud:index/acl:Acl'; + + /** + * Returns true if the given object is an instance of Acl. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Acl { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Acl.__pulumiType; + } + + /** + * CIDR blocks allowed by the IP access list + */ + public readonly cidrBlocks!: pulumi.Output<{[key: string]: any}[]>; + /** + * Human-friendly name for the Acl + */ + public readonly name!: pulumi.Output; + /** + * Project ID + */ + public readonly projectId!: pulumi.Output; + + /** + * Create a Acl resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: AclArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: AclArgs | AclState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as AclState | undefined; + resourceInputs["cidrBlocks"] = state ? state.cidrBlocks : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["projectId"] = state ? state.projectId : undefined; + } else { + const args = argsOrState as AclArgs | undefined; + if ((!args || args.cidrBlocks === undefined) && !opts.urn) { + throw new Error("Missing required property 'cidrBlocks'"); + } + if ((!args || args.projectId === undefined) && !opts.urn) { + throw new Error("Missing required property 'projectId'"); + } + resourceInputs["cidrBlocks"] = args ? args.cidrBlocks : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["projectId"] = args ? args.projectId : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Acl.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Acl resources. + */ +export interface AclState { + /** + * CIDR blocks allowed by the IP access list + */ + cidrBlocks?: pulumi.Input[]>; + /** + * Human-friendly name for the Acl + */ + name?: pulumi.Input; + /** + * Project ID + */ + projectId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Acl resource. + */ +export interface AclArgs { + /** + * CIDR blocks allowed by the IP access list + */ + cidrBlocks: pulumi.Input[]>; + /** + * Human-friendly name for the Acl + */ + name?: pulumi.Input; + /** + * Project ID + */ + projectId: pulumi.Input; +} diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index 7946551..31b5777 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -5,6 +5,11 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "./utilities"; // Export members: +export { AclArgs, AclState } from "./acl"; +export type Acl = import("./acl").Acl; +export const Acl: typeof import("./acl").Acl = null as any; +utilities.lazyLoad(exports, ["Acl"], () => require("./acl")); + export { AWSCloudWatchLogsIntegrationArgs, AWSCloudWatchLogsIntegrationState } from "./awscloudWatchLogsIntegration"; export type AWSCloudWatchLogsIntegration = import("./awscloudWatchLogsIntegration").AWSCloudWatchLogsIntegration; export const AWSCloudWatchLogsIntegration: typeof import("./awscloudWatchLogsIntegration").AWSCloudWatchLogsIntegration = null as any; @@ -76,6 +81,8 @@ const _module = { return new AWSCloudWatchLogsIntegration(name, undefined, { urn }) case "eventstorecloud:index/aWSCloudWatchMetricsIntegration:AWSCloudWatchMetricsIntegration": return new AWSCloudWatchMetricsIntegration(name, undefined, { urn }) + case "eventstorecloud:index/acl:Acl": + return new Acl(name, undefined, { urn }) case "eventstorecloud:index/integration:Integration": return new Integration(name, undefined, { urn }) case "eventstorecloud:index/managedCluster:ManagedCluster": @@ -95,6 +102,7 @@ const _module = { }; pulumi.runtime.registerResourceModule("eventstorecloud", "index/aWSCloudWatchLogsIntegration", _module) pulumi.runtime.registerResourceModule("eventstorecloud", "index/aWSCloudWatchMetricsIntegration", _module) +pulumi.runtime.registerResourceModule("eventstorecloud", "index/acl", _module) pulumi.runtime.registerResourceModule("eventstorecloud", "index/integration", _module) pulumi.runtime.registerResourceModule("eventstorecloud", "index/managedCluster", _module) pulumi.runtime.registerResourceModule("eventstorecloud", "index/network", _module) diff --git a/sdk/nodejs/managedCluster.ts b/sdk/nodejs/managedCluster.ts index b804e01..8dcaf4d 100644 --- a/sdk/nodejs/managedCluster.ts +++ b/sdk/nodejs/managedCluster.ts @@ -70,6 +70,10 @@ export class ManagedCluster extends pulumi.CustomResource { return obj['__pulumiType'] === ManagedCluster.__pulumiType; } + /** + * ID of the ACL if using public access + */ + public readonly aclId!: pulumi.Output; /** * Number of IOPS for storage, required if diskType is `gp3` */ @@ -91,7 +95,7 @@ export class ManagedCluster extends pulumi.CustomResource { */ public /*out*/ readonly dnsName!: pulumi.Output; /** - * Instance type of the managed cluster (find the list of valid values below) + * Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. */ public readonly instanceType!: pulumi.Output; /** @@ -114,6 +118,10 @@ export class ManagedCluster extends pulumi.CustomResource { * Protection from an accidental cluster deletion Defaults to `false`. */ public readonly protected!: pulumi.Output; + /** + * If true, the cluster is provisioned with a public endpoint + */ + public readonly publicAccess!: pulumi.Output; /** * Region in which the cluster was created. Determined by the region of the Network */ @@ -148,6 +156,7 @@ export class ManagedCluster extends pulumi.CustomResource { opts = opts || {}; if (opts.id) { const state = argsOrState as ManagedClusterState | undefined; + resourceInputs["aclId"] = state ? state.aclId : undefined; resourceInputs["diskIops"] = state ? state.diskIops : undefined; resourceInputs["diskSize"] = state ? state.diskSize : undefined; resourceInputs["diskThroughput"] = state ? state.diskThroughput : undefined; @@ -159,6 +168,7 @@ export class ManagedCluster extends pulumi.CustomResource { resourceInputs["projectId"] = state ? state.projectId : undefined; resourceInputs["projectionLevel"] = state ? state.projectionLevel : undefined; resourceInputs["protected"] = state ? state.protected : undefined; + resourceInputs["publicAccess"] = state ? state.publicAccess : undefined; resourceInputs["region"] = state ? state.region : undefined; resourceInputs["resourceProvider"] = state ? state.resourceProvider : undefined; resourceInputs["serverVersion"] = state ? state.serverVersion : undefined; @@ -187,6 +197,7 @@ export class ManagedCluster extends pulumi.CustomResource { if ((!args || args.topology === undefined) && !opts.urn) { throw new Error("Missing required property 'topology'"); } + resourceInputs["aclId"] = args ? args.aclId : undefined; resourceInputs["diskIops"] = args ? args.diskIops : undefined; resourceInputs["diskSize"] = args ? args.diskSize : undefined; resourceInputs["diskThroughput"] = args ? args.diskThroughput : undefined; @@ -197,6 +208,7 @@ export class ManagedCluster extends pulumi.CustomResource { resourceInputs["projectId"] = args ? args.projectId : undefined; resourceInputs["projectionLevel"] = args ? args.projectionLevel : undefined; resourceInputs["protected"] = args ? args.protected : undefined; + resourceInputs["publicAccess"] = args ? args.publicAccess : undefined; resourceInputs["serverVersion"] = args ? args.serverVersion : undefined; resourceInputs["serverVersionTag"] = args ? args.serverVersionTag : undefined; resourceInputs["topology"] = args ? args.topology : undefined; @@ -213,6 +225,10 @@ export class ManagedCluster extends pulumi.CustomResource { * Input properties used for looking up and filtering ManagedCluster resources. */ export interface ManagedClusterState { + /** + * ID of the ACL if using public access + */ + aclId?: pulumi.Input; /** * Number of IOPS for storage, required if diskType is `gp3` */ @@ -234,7 +250,7 @@ export interface ManagedClusterState { */ dnsName?: pulumi.Input; /** - * Instance type of the managed cluster (find the list of valid values below) + * Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. */ instanceType?: pulumi.Input; /** @@ -257,6 +273,10 @@ export interface ManagedClusterState { * Protection from an accidental cluster deletion Defaults to `false`. */ protected?: pulumi.Input; + /** + * If true, the cluster is provisioned with a public endpoint + */ + publicAccess?: pulumi.Input; /** * Region in which the cluster was created. Determined by the region of the Network */ @@ -283,6 +303,10 @@ export interface ManagedClusterState { * The set of arguments for constructing a ManagedCluster resource. */ export interface ManagedClusterArgs { + /** + * ID of the ACL if using public access + */ + aclId?: pulumi.Input; /** * Number of IOPS for storage, required if diskType is `gp3` */ @@ -300,7 +324,7 @@ export interface ManagedClusterArgs { */ diskType: pulumi.Input; /** - * Instance type of the managed cluster (find the list of valid values below) + * Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. */ instanceType: pulumi.Input; /** @@ -323,6 +347,10 @@ export interface ManagedClusterArgs { * Protection from an accidental cluster deletion Defaults to `false`. */ protected?: pulumi.Input; + /** + * If true, the cluster is provisioned with a public endpoint + */ + publicAccess?: pulumi.Input; /** * Server version to provision (find the list of valid values below) */ diff --git a/sdk/nodejs/network.ts b/sdk/nodejs/network.ts index 2e83a56..e69a853 100644 --- a/sdk/nodejs/network.ts +++ b/sdk/nodejs/network.ts @@ -59,7 +59,7 @@ export class Network extends pulumi.CustomResource { /** * Address space of the network in CIDR block notation */ - public readonly cidrBlock!: pulumi.Output; + public readonly cidrBlock!: pulumi.Output; /** * Human-friendly name for the network */ @@ -68,6 +68,10 @@ export class Network extends pulumi.CustomResource { * Project ID */ public readonly projectId!: pulumi.Output; + /** + * Whether the network is able to be accessed from the public internet + */ + public readonly publicAccess!: pulumi.Output; /** * Provider region in which to provision the network */ @@ -93,13 +97,11 @@ export class Network extends pulumi.CustomResource { resourceInputs["cidrBlock"] = state ? state.cidrBlock : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["projectId"] = state ? state.projectId : undefined; + resourceInputs["publicAccess"] = state ? state.publicAccess : undefined; resourceInputs["region"] = state ? state.region : undefined; resourceInputs["resourceProvider"] = state ? state.resourceProvider : undefined; } else { const args = argsOrState as NetworkArgs | undefined; - if ((!args || args.cidrBlock === undefined) && !opts.urn) { - throw new Error("Missing required property 'cidrBlock'"); - } if ((!args || args.projectId === undefined) && !opts.urn) { throw new Error("Missing required property 'projectId'"); } @@ -112,6 +114,7 @@ export class Network extends pulumi.CustomResource { resourceInputs["cidrBlock"] = args ? args.cidrBlock : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["projectId"] = args ? args.projectId : undefined; + resourceInputs["publicAccess"] = args ? args.publicAccess : undefined; resourceInputs["region"] = args ? args.region : undefined; resourceInputs["resourceProvider"] = args ? args.resourceProvider : undefined; } @@ -136,6 +139,10 @@ export interface NetworkState { * Project ID */ projectId?: pulumi.Input; + /** + * Whether the network is able to be accessed from the public internet + */ + publicAccess?: pulumi.Input; /** * Provider region in which to provision the network */ @@ -153,7 +160,7 @@ export interface NetworkArgs { /** * Address space of the network in CIDR block notation */ - cidrBlock: pulumi.Input; + cidrBlock?: pulumi.Input; /** * Human-friendly name for the network */ @@ -162,6 +169,10 @@ export interface NetworkArgs { * Project ID */ projectId: pulumi.Input; + /** + * Whether the network is able to be accessed from the public internet + */ + publicAccess?: pulumi.Input; /** * Provider region in which to provision the network */ diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 5e18c14..6f18300 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -13,6 +13,7 @@ "strict": true }, "files": [ + "acl.ts", "awscloudWatchLogsIntegration.ts", "awscloudWatchMetricsIntegration.ts", "config/index.ts", diff --git a/sdk/python/pulumi_eventstorecloud/__init__.py b/sdk/python/pulumi_eventstorecloud/__init__.py index 2799b37..d8a4ba2 100644 --- a/sdk/python/pulumi_eventstorecloud/__init__.py +++ b/sdk/python/pulumi_eventstorecloud/__init__.py @@ -5,6 +5,7 @@ from . import _utilities import typing # Export this package's modules as members: +from .acl import * from .aws_cloud_watch_logs_integration import * from .aws_cloud_watch_metrics_integration import * from .get_network import * @@ -43,6 +44,14 @@ "eventstorecloud:index/aWSCloudWatchMetricsIntegration:AWSCloudWatchMetricsIntegration": "AWSCloudWatchMetricsIntegration" } }, + { + "pkg": "eventstorecloud", + "mod": "index/acl", + "fqn": "pulumi_eventstorecloud", + "classes": { + "eventstorecloud:index/acl:Acl": "Acl" + } + }, { "pkg": "eventstorecloud", "mod": "index/integration", diff --git a/sdk/python/pulumi_eventstorecloud/acl.py b/sdk/python/pulumi_eventstorecloud/acl.py new file mode 100644 index 0000000..01eba66 --- /dev/null +++ b/sdk/python/pulumi_eventstorecloud/acl.py @@ -0,0 +1,241 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = ['AclArgs', 'Acl'] + +@pulumi.input_type +class AclArgs: + def __init__(__self__, *, + cidr_blocks: pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]], + project_id: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a Acl resource. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] cidr_blocks: CIDR blocks allowed by the IP access list + :param pulumi.Input[str] project_id: Project ID + :param pulumi.Input[str] name: Human-friendly name for the Acl + """ + pulumi.set(__self__, "cidr_blocks", cidr_blocks) + pulumi.set(__self__, "project_id", project_id) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="cidrBlocks") + def cidr_blocks(self) -> pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]: + """ + CIDR blocks allowed by the IP access list + """ + return pulumi.get(self, "cidr_blocks") + + @cidr_blocks.setter + def cidr_blocks(self, value: pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]): + pulumi.set(self, "cidr_blocks", value) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Input[str]: + """ + Project ID + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: pulumi.Input[str]): + pulumi.set(self, "project_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Human-friendly name for the Acl + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +@pulumi.input_type +class _AclState: + def __init__(__self__, *, + cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering Acl resources. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] cidr_blocks: CIDR blocks allowed by the IP access list + :param pulumi.Input[str] name: Human-friendly name for the Acl + :param pulumi.Input[str] project_id: Project ID + """ + if cidr_blocks is not None: + pulumi.set(__self__, "cidr_blocks", cidr_blocks) + if name is not None: + pulumi.set(__self__, "name", name) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + + @property + @pulumi.getter(name="cidrBlocks") + def cidr_blocks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]]: + """ + CIDR blocks allowed by the IP access list + """ + return pulumi.get(self, "cidr_blocks") + + @cidr_blocks.setter + def cidr_blocks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]]): + pulumi.set(self, "cidr_blocks", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Human-friendly name for the Acl + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[str]]: + """ + Project ID + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project_id", value) + + +class Acl(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Manages IP Access Lists + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] cidr_blocks: CIDR blocks allowed by the IP access list + :param pulumi.Input[str] name: Human-friendly name for the Acl + :param pulumi.Input[str] project_id: Project ID + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: AclArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Manages IP Access Lists + + :param str resource_name: The name of the resource. + :param AclArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(AclArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = AclArgs.__new__(AclArgs) + + if cidr_blocks is None and not opts.urn: + raise TypeError("Missing required property 'cidr_blocks'") + __props__.__dict__["cidr_blocks"] = cidr_blocks + __props__.__dict__["name"] = name + if project_id is None and not opts.urn: + raise TypeError("Missing required property 'project_id'") + __props__.__dict__["project_id"] = project_id + super(Acl, __self__).__init__( + 'eventstorecloud:index/acl:Acl', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None) -> 'Acl': + """ + Get an existing Acl resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] cidr_blocks: CIDR blocks allowed by the IP access list + :param pulumi.Input[str] name: Human-friendly name for the Acl + :param pulumi.Input[str] project_id: Project ID + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _AclState.__new__(_AclState) + + __props__.__dict__["cidr_blocks"] = cidr_blocks + __props__.__dict__["name"] = name + __props__.__dict__["project_id"] = project_id + return Acl(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="cidrBlocks") + def cidr_blocks(self) -> pulumi.Output[Sequence[Mapping[str, Any]]]: + """ + CIDR blocks allowed by the IP access list + """ + return pulumi.get(self, "cidr_blocks") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Human-friendly name for the Acl + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Output[str]: + """ + Project ID + """ + return pulumi.get(self, "project_id") + diff --git a/sdk/python/pulumi_eventstorecloud/managed_cluster.py b/sdk/python/pulumi_eventstorecloud/managed_cluster.py index b8c2212..f5839a2 100644 --- a/sdk/python/pulumi_eventstorecloud/managed_cluster.py +++ b/sdk/python/pulumi_eventstorecloud/managed_cluster.py @@ -21,26 +21,30 @@ def __init__(__self__, *, project_id: pulumi.Input[str], server_version: pulumi.Input[str], topology: pulumi.Input[str], + acl_id: Optional[pulumi.Input[str]] = None, disk_iops: Optional[pulumi.Input[int]] = None, disk_throughput: Optional[pulumi.Input[int]] = None, name: Optional[pulumi.Input[str]] = None, projection_level: Optional[pulumi.Input[str]] = None, protected: Optional[pulumi.Input[bool]] = None, + public_access: Optional[pulumi.Input[bool]] = None, server_version_tag: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a ManagedCluster resource. :param pulumi.Input[int] disk_size: Size of the data disks, in gigabytes :param pulumi.Input[str] disk_type: Storage class of the data disks (find the list of valid values below) - :param pulumi.Input[str] instance_type: Instance type of the managed cluster (find the list of valid values below) + :param pulumi.Input[str] instance_type: Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. :param pulumi.Input[str] network_id: ID of the network in which the managed cluster exists :param pulumi.Input[str] project_id: ID of the project in which the managed cluster exists :param pulumi.Input[str] server_version: Server version to provision (find the list of valid values below) :param pulumi.Input[str] topology: Topology of the managed cluster (`single-node` or `three-node-multi-zone`) + :param pulumi.Input[str] acl_id: ID of the ACL if using public access :param pulumi.Input[int] disk_iops: Number of IOPS for storage, required if disk_type is `gp3` :param pulumi.Input[int] disk_throughput: Throughput in MB/s for storage, required if disk_type is `gp3` :param pulumi.Input[str] name: Name of the managed cluster :param pulumi.Input[str] projection_level: Determines whether to run no projections, system projections only, or system and user projections (find the list of valid values below) Defaults to `off`. :param pulumi.Input[bool] protected: Protection from an accidental cluster deletion Defaults to `false`. + :param pulumi.Input[bool] public_access: If true, the cluster is provisioned with a public endpoint :param pulumi.Input[str] server_version_tag: Server version tag to provision (find the list of valid values below). A higher server*version*tag will prompt an upgrade. """ pulumi.set(__self__, "disk_size", disk_size) @@ -50,6 +54,8 @@ def __init__(__self__, *, pulumi.set(__self__, "project_id", project_id) pulumi.set(__self__, "server_version", server_version) pulumi.set(__self__, "topology", topology) + if acl_id is not None: + pulumi.set(__self__, "acl_id", acl_id) if disk_iops is not None: pulumi.set(__self__, "disk_iops", disk_iops) if disk_throughput is not None: @@ -60,6 +66,8 @@ def __init__(__self__, *, pulumi.set(__self__, "projection_level", projection_level) if protected is not None: pulumi.set(__self__, "protected", protected) + if public_access is not None: + pulumi.set(__self__, "public_access", public_access) if server_version_tag is not None: pulumi.set(__self__, "server_version_tag", server_version_tag) @@ -91,7 +99,7 @@ def disk_type(self, value: pulumi.Input[str]): @pulumi.getter(name="instanceType") def instance_type(self) -> pulumi.Input[str]: """ - Instance type of the managed cluster (find the list of valid values below) + Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. """ return pulumi.get(self, "instance_type") @@ -147,6 +155,18 @@ def topology(self) -> pulumi.Input[str]: def topology(self, value: pulumi.Input[str]): pulumi.set(self, "topology", value) + @property + @pulumi.getter(name="aclId") + def acl_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the ACL if using public access + """ + return pulumi.get(self, "acl_id") + + @acl_id.setter + def acl_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "acl_id", value) + @property @pulumi.getter(name="diskIops") def disk_iops(self) -> Optional[pulumi.Input[int]]: @@ -207,6 +227,18 @@ def protected(self) -> Optional[pulumi.Input[bool]]: def protected(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "protected", value) + @property + @pulumi.getter(name="publicAccess") + def public_access(self) -> Optional[pulumi.Input[bool]]: + """ + If true, the cluster is provisioned with a public endpoint + """ + return pulumi.get(self, "public_access") + + @public_access.setter + def public_access(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "public_access", value) + @property @pulumi.getter(name="serverVersionTag") def server_version_tag(self) -> Optional[pulumi.Input[str]]: @@ -223,6 +255,7 @@ def server_version_tag(self, value: Optional[pulumi.Input[str]]): @pulumi.input_type class _ManagedClusterState: def __init__(__self__, *, + acl_id: Optional[pulumi.Input[str]] = None, disk_iops: Optional[pulumi.Input[int]] = None, disk_size: Optional[pulumi.Input[int]] = None, disk_throughput: Optional[pulumi.Input[int]] = None, @@ -234,6 +267,7 @@ def __init__(__self__, *, project_id: Optional[pulumi.Input[str]] = None, projection_level: Optional[pulumi.Input[str]] = None, protected: Optional[pulumi.Input[bool]] = None, + public_access: Optional[pulumi.Input[bool]] = None, region: Optional[pulumi.Input[str]] = None, resource_provider: Optional[pulumi.Input[str]] = None, server_version: Optional[pulumi.Input[str]] = None, @@ -241,23 +275,27 @@ def __init__(__self__, *, topology: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering ManagedCluster resources. + :param pulumi.Input[str] acl_id: ID of the ACL if using public access :param pulumi.Input[int] disk_iops: Number of IOPS for storage, required if disk_type is `gp3` :param pulumi.Input[int] disk_size: Size of the data disks, in gigabytes :param pulumi.Input[int] disk_throughput: Throughput in MB/s for storage, required if disk_type is `gp3` :param pulumi.Input[str] disk_type: Storage class of the data disks (find the list of valid values below) :param pulumi.Input[str] dns_name: DNS address of the cluster - :param pulumi.Input[str] instance_type: Instance type of the managed cluster (find the list of valid values below) + :param pulumi.Input[str] instance_type: Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. :param pulumi.Input[str] name: Name of the managed cluster :param pulumi.Input[str] network_id: ID of the network in which the managed cluster exists :param pulumi.Input[str] project_id: ID of the project in which the managed cluster exists :param pulumi.Input[str] projection_level: Determines whether to run no projections, system projections only, or system and user projections (find the list of valid values below) Defaults to `off`. :param pulumi.Input[bool] protected: Protection from an accidental cluster deletion Defaults to `false`. + :param pulumi.Input[bool] public_access: If true, the cluster is provisioned with a public endpoint :param pulumi.Input[str] region: Region in which the cluster was created. Determined by the region of the Network :param pulumi.Input[str] resource_provider: Provider in which the cluster was created. Determined by the provider of the Network. :param pulumi.Input[str] server_version: Server version to provision (find the list of valid values below) :param pulumi.Input[str] server_version_tag: Server version tag to provision (find the list of valid values below). A higher server*version*tag will prompt an upgrade. :param pulumi.Input[str] topology: Topology of the managed cluster (`single-node` or `three-node-multi-zone`) """ + if acl_id is not None: + pulumi.set(__self__, "acl_id", acl_id) if disk_iops is not None: pulumi.set(__self__, "disk_iops", disk_iops) if disk_size is not None: @@ -280,6 +318,8 @@ def __init__(__self__, *, pulumi.set(__self__, "projection_level", projection_level) if protected is not None: pulumi.set(__self__, "protected", protected) + if public_access is not None: + pulumi.set(__self__, "public_access", public_access) if region is not None: pulumi.set(__self__, "region", region) if resource_provider is not None: @@ -291,6 +331,18 @@ def __init__(__self__, *, if topology is not None: pulumi.set(__self__, "topology", topology) + @property + @pulumi.getter(name="aclId") + def acl_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the ACL if using public access + """ + return pulumi.get(self, "acl_id") + + @acl_id.setter + def acl_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "acl_id", value) + @property @pulumi.getter(name="diskIops") def disk_iops(self) -> Optional[pulumi.Input[int]]: @@ -355,7 +407,7 @@ def dns_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="instanceType") def instance_type(self) -> Optional[pulumi.Input[str]]: """ - Instance type of the managed cluster (find the list of valid values below) + Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. """ return pulumi.get(self, "instance_type") @@ -423,6 +475,18 @@ def protected(self) -> Optional[pulumi.Input[bool]]: def protected(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "protected", value) + @property + @pulumi.getter(name="publicAccess") + def public_access(self) -> Optional[pulumi.Input[bool]]: + """ + If true, the cluster is provisioned with a public endpoint + """ + return pulumi.get(self, "public_access") + + @public_access.setter + def public_access(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "public_access", value) + @property @pulumi.getter def region(self) -> Optional[pulumi.Input[str]]: @@ -489,6 +553,7 @@ class ManagedCluster(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + acl_id: Optional[pulumi.Input[str]] = None, disk_iops: Optional[pulumi.Input[int]] = None, disk_size: Optional[pulumi.Input[int]] = None, disk_throughput: Optional[pulumi.Input[int]] = None, @@ -499,6 +564,7 @@ def __init__(__self__, project_id: Optional[pulumi.Input[str]] = None, projection_level: Optional[pulumi.Input[str]] = None, protected: Optional[pulumi.Input[bool]] = None, + public_access: Optional[pulumi.Input[bool]] = None, server_version: Optional[pulumi.Input[str]] = None, server_version_tag: Optional[pulumi.Input[str]] = None, topology: Optional[pulumi.Input[str]] = None, @@ -538,16 +604,18 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] acl_id: ID of the ACL if using public access :param pulumi.Input[int] disk_iops: Number of IOPS for storage, required if disk_type is `gp3` :param pulumi.Input[int] disk_size: Size of the data disks, in gigabytes :param pulumi.Input[int] disk_throughput: Throughput in MB/s for storage, required if disk_type is `gp3` :param pulumi.Input[str] disk_type: Storage class of the data disks (find the list of valid values below) - :param pulumi.Input[str] instance_type: Instance type of the managed cluster (find the list of valid values below) + :param pulumi.Input[str] instance_type: Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. :param pulumi.Input[str] name: Name of the managed cluster :param pulumi.Input[str] network_id: ID of the network in which the managed cluster exists :param pulumi.Input[str] project_id: ID of the project in which the managed cluster exists :param pulumi.Input[str] projection_level: Determines whether to run no projections, system projections only, or system and user projections (find the list of valid values below) Defaults to `off`. :param pulumi.Input[bool] protected: Protection from an accidental cluster deletion Defaults to `false`. + :param pulumi.Input[bool] public_access: If true, the cluster is provisioned with a public endpoint :param pulumi.Input[str] server_version: Server version to provision (find the list of valid values below) :param pulumi.Input[str] server_version_tag: Server version tag to provision (find the list of valid values below). A higher server*version*tag will prompt an upgrade. :param pulumi.Input[str] topology: Topology of the managed cluster (`single-node` or `three-node-multi-zone`) @@ -606,6 +674,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + acl_id: Optional[pulumi.Input[str]] = None, disk_iops: Optional[pulumi.Input[int]] = None, disk_size: Optional[pulumi.Input[int]] = None, disk_throughput: Optional[pulumi.Input[int]] = None, @@ -616,6 +685,7 @@ def _internal_init(__self__, project_id: Optional[pulumi.Input[str]] = None, projection_level: Optional[pulumi.Input[str]] = None, protected: Optional[pulumi.Input[bool]] = None, + public_access: Optional[pulumi.Input[bool]] = None, server_version: Optional[pulumi.Input[str]] = None, server_version_tag: Optional[pulumi.Input[str]] = None, topology: Optional[pulumi.Input[str]] = None, @@ -628,6 +698,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ManagedClusterArgs.__new__(ManagedClusterArgs) + __props__.__dict__["acl_id"] = acl_id __props__.__dict__["disk_iops"] = disk_iops if disk_size is None and not opts.urn: raise TypeError("Missing required property 'disk_size'") @@ -648,6 +719,7 @@ def _internal_init(__self__, __props__.__dict__["project_id"] = project_id __props__.__dict__["projection_level"] = projection_level __props__.__dict__["protected"] = protected + __props__.__dict__["public_access"] = public_access if server_version is None and not opts.urn: raise TypeError("Missing required property 'server_version'") __props__.__dict__["server_version"] = server_version @@ -668,6 +740,7 @@ def _internal_init(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, + acl_id: Optional[pulumi.Input[str]] = None, disk_iops: Optional[pulumi.Input[int]] = None, disk_size: Optional[pulumi.Input[int]] = None, disk_throughput: Optional[pulumi.Input[int]] = None, @@ -679,6 +752,7 @@ def get(resource_name: str, project_id: Optional[pulumi.Input[str]] = None, projection_level: Optional[pulumi.Input[str]] = None, protected: Optional[pulumi.Input[bool]] = None, + public_access: Optional[pulumi.Input[bool]] = None, region: Optional[pulumi.Input[str]] = None, resource_provider: Optional[pulumi.Input[str]] = None, server_version: Optional[pulumi.Input[str]] = None, @@ -691,17 +765,19 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] acl_id: ID of the ACL if using public access :param pulumi.Input[int] disk_iops: Number of IOPS for storage, required if disk_type is `gp3` :param pulumi.Input[int] disk_size: Size of the data disks, in gigabytes :param pulumi.Input[int] disk_throughput: Throughput in MB/s for storage, required if disk_type is `gp3` :param pulumi.Input[str] disk_type: Storage class of the data disks (find the list of valid values below) :param pulumi.Input[str] dns_name: DNS address of the cluster - :param pulumi.Input[str] instance_type: Instance type of the managed cluster (find the list of valid values below) + :param pulumi.Input[str] instance_type: Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. :param pulumi.Input[str] name: Name of the managed cluster :param pulumi.Input[str] network_id: ID of the network in which the managed cluster exists :param pulumi.Input[str] project_id: ID of the project in which the managed cluster exists :param pulumi.Input[str] projection_level: Determines whether to run no projections, system projections only, or system and user projections (find the list of valid values below) Defaults to `off`. :param pulumi.Input[bool] protected: Protection from an accidental cluster deletion Defaults to `false`. + :param pulumi.Input[bool] public_access: If true, the cluster is provisioned with a public endpoint :param pulumi.Input[str] region: Region in which the cluster was created. Determined by the region of the Network :param pulumi.Input[str] resource_provider: Provider in which the cluster was created. Determined by the provider of the Network. :param pulumi.Input[str] server_version: Server version to provision (find the list of valid values below) @@ -712,6 +788,7 @@ def get(resource_name: str, __props__ = _ManagedClusterState.__new__(_ManagedClusterState) + __props__.__dict__["acl_id"] = acl_id __props__.__dict__["disk_iops"] = disk_iops __props__.__dict__["disk_size"] = disk_size __props__.__dict__["disk_throughput"] = disk_throughput @@ -723,6 +800,7 @@ def get(resource_name: str, __props__.__dict__["project_id"] = project_id __props__.__dict__["projection_level"] = projection_level __props__.__dict__["protected"] = protected + __props__.__dict__["public_access"] = public_access __props__.__dict__["region"] = region __props__.__dict__["resource_provider"] = resource_provider __props__.__dict__["server_version"] = server_version @@ -730,6 +808,14 @@ def get(resource_name: str, __props__.__dict__["topology"] = topology return ManagedCluster(resource_name, opts=opts, __props__=__props__) + @property + @pulumi.getter(name="aclId") + def acl_id(self) -> pulumi.Output[Optional[str]]: + """ + ID of the ACL if using public access + """ + return pulumi.get(self, "acl_id") + @property @pulumi.getter(name="diskIops") def disk_iops(self) -> pulumi.Output[Optional[int]]: @@ -774,7 +860,7 @@ def dns_name(self) -> pulumi.Output[str]: @pulumi.getter(name="instanceType") def instance_type(self) -> pulumi.Output[str]: """ - Instance type of the managed cluster (find the list of valid values below) + Instance type of the managed cluster (find the list of valid values below). A different instance type will trigger a resize operation. """ return pulumi.get(self, "instance_type") @@ -818,6 +904,14 @@ def protected(self) -> pulumi.Output[Optional[bool]]: """ return pulumi.get(self, "protected") + @property + @pulumi.getter(name="publicAccess") + def public_access(self) -> pulumi.Output[Optional[bool]]: + """ + If true, the cluster is provisioned with a public endpoint + """ + return pulumi.get(self, "public_access") + @property @pulumi.getter def region(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_eventstorecloud/network.py b/sdk/python/pulumi_eventstorecloud/network.py index 5bb5d6d..0779ed9 100644 --- a/sdk/python/pulumi_eventstorecloud/network.py +++ b/sdk/python/pulumi_eventstorecloud/network.py @@ -14,37 +14,30 @@ @pulumi.input_type class NetworkArgs: def __init__(__self__, *, - cidr_block: pulumi.Input[str], project_id: pulumi.Input[str], region: pulumi.Input[str], resource_provider: pulumi.Input[str], - name: Optional[pulumi.Input[str]] = None): + cidr_block: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + public_access: Optional[pulumi.Input[bool]] = None): """ The set of arguments for constructing a Network resource. - :param pulumi.Input[str] cidr_block: Address space of the network in CIDR block notation :param pulumi.Input[str] project_id: Project ID :param pulumi.Input[str] region: Provider region in which to provision the network :param pulumi.Input[str] resource_provider: Cloud Provider in which to provision the network. + :param pulumi.Input[str] cidr_block: Address space of the network in CIDR block notation :param pulumi.Input[str] name: Human-friendly name for the network + :param pulumi.Input[bool] public_access: Whether the network is able to be accessed from the public internet """ - pulumi.set(__self__, "cidr_block", cidr_block) pulumi.set(__self__, "project_id", project_id) pulumi.set(__self__, "region", region) pulumi.set(__self__, "resource_provider", resource_provider) + if cidr_block is not None: + pulumi.set(__self__, "cidr_block", cidr_block) if name is not None: pulumi.set(__self__, "name", name) - - @property - @pulumi.getter(name="cidrBlock") - def cidr_block(self) -> pulumi.Input[str]: - """ - Address space of the network in CIDR block notation - """ - return pulumi.get(self, "cidr_block") - - @cidr_block.setter - def cidr_block(self, value: pulumi.Input[str]): - pulumi.set(self, "cidr_block", value) + if public_access is not None: + pulumi.set(__self__, "public_access", public_access) @property @pulumi.getter(name="projectId") @@ -82,6 +75,18 @@ def resource_provider(self) -> pulumi.Input[str]: def resource_provider(self, value: pulumi.Input[str]): pulumi.set(self, "resource_provider", value) + @property + @pulumi.getter(name="cidrBlock") + def cidr_block(self) -> Optional[pulumi.Input[str]]: + """ + Address space of the network in CIDR block notation + """ + return pulumi.get(self, "cidr_block") + + @cidr_block.setter + def cidr_block(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cidr_block", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: @@ -94,6 +99,18 @@ def name(self) -> Optional[pulumi.Input[str]]: def name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "name", value) + @property + @pulumi.getter(name="publicAccess") + def public_access(self) -> Optional[pulumi.Input[bool]]: + """ + Whether the network is able to be accessed from the public internet + """ + return pulumi.get(self, "public_access") + + @public_access.setter + def public_access(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "public_access", value) + @pulumi.input_type class _NetworkState: @@ -101,6 +118,7 @@ def __init__(__self__, *, cidr_block: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, project_id: Optional[pulumi.Input[str]] = None, + public_access: Optional[pulumi.Input[bool]] = None, region: Optional[pulumi.Input[str]] = None, resource_provider: Optional[pulumi.Input[str]] = None): """ @@ -108,6 +126,7 @@ def __init__(__self__, *, :param pulumi.Input[str] cidr_block: Address space of the network in CIDR block notation :param pulumi.Input[str] name: Human-friendly name for the network :param pulumi.Input[str] project_id: Project ID + :param pulumi.Input[bool] public_access: Whether the network is able to be accessed from the public internet :param pulumi.Input[str] region: Provider region in which to provision the network :param pulumi.Input[str] resource_provider: Cloud Provider in which to provision the network. """ @@ -117,6 +136,8 @@ def __init__(__self__, *, pulumi.set(__self__, "name", name) if project_id is not None: pulumi.set(__self__, "project_id", project_id) + if public_access is not None: + pulumi.set(__self__, "public_access", public_access) if region is not None: pulumi.set(__self__, "region", region) if resource_provider is not None: @@ -158,6 +179,18 @@ def project_id(self) -> Optional[pulumi.Input[str]]: def project_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "project_id", value) + @property + @pulumi.getter(name="publicAccess") + def public_access(self) -> Optional[pulumi.Input[bool]]: + """ + Whether the network is able to be accessed from the public internet + """ + return pulumi.get(self, "public_access") + + @public_access.setter + def public_access(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "public_access", value) + @property @pulumi.getter def region(self) -> Optional[pulumi.Input[str]]: @@ -191,6 +224,7 @@ def __init__(__self__, cidr_block: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, project_id: Optional[pulumi.Input[str]] = None, + public_access: Optional[pulumi.Input[bool]] = None, region: Optional[pulumi.Input[str]] = None, resource_provider: Optional[pulumi.Input[str]] = None, __props__=None): @@ -222,6 +256,7 @@ def __init__(__self__, :param pulumi.Input[str] cidr_block: Address space of the network in CIDR block notation :param pulumi.Input[str] name: Human-friendly name for the network :param pulumi.Input[str] project_id: Project ID + :param pulumi.Input[bool] public_access: Whether the network is able to be accessed from the public internet :param pulumi.Input[str] region: Provider region in which to provision the network :param pulumi.Input[str] resource_provider: Cloud Provider in which to provision the network. """ @@ -272,6 +307,7 @@ def _internal_init(__self__, cidr_block: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, project_id: Optional[pulumi.Input[str]] = None, + public_access: Optional[pulumi.Input[bool]] = None, region: Optional[pulumi.Input[str]] = None, resource_provider: Optional[pulumi.Input[str]] = None, __props__=None): @@ -283,13 +319,12 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = NetworkArgs.__new__(NetworkArgs) - if cidr_block is None and not opts.urn: - raise TypeError("Missing required property 'cidr_block'") __props__.__dict__["cidr_block"] = cidr_block __props__.__dict__["name"] = name if project_id is None and not opts.urn: raise TypeError("Missing required property 'project_id'") __props__.__dict__["project_id"] = project_id + __props__.__dict__["public_access"] = public_access if region is None and not opts.urn: raise TypeError("Missing required property 'region'") __props__.__dict__["region"] = region @@ -309,6 +344,7 @@ def get(resource_name: str, cidr_block: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, project_id: Optional[pulumi.Input[str]] = None, + public_access: Optional[pulumi.Input[bool]] = None, region: Optional[pulumi.Input[str]] = None, resource_provider: Optional[pulumi.Input[str]] = None) -> 'Network': """ @@ -321,6 +357,7 @@ def get(resource_name: str, :param pulumi.Input[str] cidr_block: Address space of the network in CIDR block notation :param pulumi.Input[str] name: Human-friendly name for the network :param pulumi.Input[str] project_id: Project ID + :param pulumi.Input[bool] public_access: Whether the network is able to be accessed from the public internet :param pulumi.Input[str] region: Provider region in which to provision the network :param pulumi.Input[str] resource_provider: Cloud Provider in which to provision the network. """ @@ -331,13 +368,14 @@ def get(resource_name: str, __props__.__dict__["cidr_block"] = cidr_block __props__.__dict__["name"] = name __props__.__dict__["project_id"] = project_id + __props__.__dict__["public_access"] = public_access __props__.__dict__["region"] = region __props__.__dict__["resource_provider"] = resource_provider return Network(resource_name, opts=opts, __props__=__props__) @property @pulumi.getter(name="cidrBlock") - def cidr_block(self) -> pulumi.Output[str]: + def cidr_block(self) -> pulumi.Output[Optional[str]]: """ Address space of the network in CIDR block notation """ @@ -359,6 +397,14 @@ def project_id(self) -> pulumi.Output[str]: """ return pulumi.get(self, "project_id") + @property + @pulumi.getter(name="publicAccess") + def public_access(self) -> pulumi.Output[Optional[bool]]: + """ + Whether the network is able to be accessed from the public internet + """ + return pulumi.get(self, "public_access") + @property @pulumi.getter def region(self) -> pulumi.Output[str]: