From db989d937f599db0b677bd39de43c234d834378b Mon Sep 17 00:00:00 2001 From: Ian Wahbe Date: Mon, 15 Jul 2024 17:08:57 -0700 Subject: [PATCH 1/2] make tfgen --- .../bridge-metadata.json | 44 ++ .../cmd/pulumi-resource-rancher2/schema.json | 135 +++- provider/go.mod | 152 ++-- provider/go.sum | 682 +++--------------- 4 files changed, 364 insertions(+), 649 deletions(-) diff --git a/provider/cmd/pulumi-resource-rancher2/bridge-metadata.json b/provider/cmd/pulumi-resource-rancher2/bridge-metadata.json index e69066486..7875c147f 100644 --- a/provider/cmd/pulumi-resource-rancher2/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-rancher2/bridge-metadata.json @@ -1911,6 +1911,28 @@ "current": "rancher2:index/roleTemplate:RoleTemplate", "majorVersion": 6, "fields": { + "external_rules": { + "maxItemsOne": false, + "elem": { + "fields": { + "api_groups": { + "maxItemsOne": false + }, + "non_resource_urls": { + "maxItemsOne": false + }, + "resource_names": { + "maxItemsOne": false + }, + "resources": { + "maxItemsOne": false + }, + "verbs": { + "maxItemsOne": false + } + } + } + }, "role_template_ids": { "maxItemsOne": false }, @@ -3532,6 +3554,28 @@ "current": "rancher2:index/getRoleTemplate:getRoleTemplate", "majorVersion": 6, "fields": { + "external_rules": { + "maxItemsOne": false, + "elem": { + "fields": { + "api_groups": { + "maxItemsOne": false + }, + "non_resource_urls": { + "maxItemsOne": false + }, + "resource_names": { + "maxItemsOne": false + }, + "resources": { + "maxItemsOne": false + }, + "verbs": { + "maxItemsOne": false + } + } + } + }, "role_template_ids": { "maxItemsOne": false }, diff --git a/provider/cmd/pulumi-resource-rancher2/schema.json b/provider/cmd/pulumi-resource-rancher2/schema.json index e2d990693..00a42f19a 100644 --- a/provider/cmd/pulumi-resource-rancher2/schema.json +++ b/provider/cmd/pulumi-resource-rancher2/schema.json @@ -647,6 +647,10 @@ }, "description": "The AKS node pools to use. Required if `import=false`\n" }, + "nodeResourceGroup": { + "type": "string", + "description": "The AKS node resource group name\n" + }, "privateCluster": { "type": "boolean", "description": "Is AKS cluster private?\n" @@ -702,6 +706,7 @@ "networkPodCidr", "networkPolicy", "networkServiceCidr", + "nodeResourceGroup", "privateCluster", "resourceGroup", "resourceLocation", @@ -11468,6 +11473,46 @@ "address" ] }, + "rancher2:index/RoleTemplateExternalRule:RoleTemplateExternalRule": { + "properties": { + "apiGroups": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Policy rule api groups\n" + }, + "nonResourceUrls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Policy rule non resource urls\n" + }, + "resourceNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Policy rule resource names\n" + }, + "resources": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Policy rule resources\n" + }, + "verbs": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Policy rule verbs\n" + } + }, + "type": "object" + }, "rancher2:index/RoleTemplateRule:RoleTemplateRule": { "properties": { "apiGroups": { @@ -11800,6 +11845,10 @@ }, "description": "The AKS node pools to use. Required if `import=false`\n" }, + "nodeResourceGroup": { + "type": "string", + "description": "The AKS node resource group name\n" + }, "privateCluster": { "type": "boolean", "description": "Is AKS cluster private?\n" @@ -11848,6 +11897,7 @@ "networkPodCidr", "networkPolicy", "networkServiceCidr", + "nodeResourceGroup", "privateCluster", "resourceGroup", "resourceLocation", @@ -20591,6 +20641,46 @@ } } }, + "rancher2:index/getRoleTemplateExternalRule:getRoleTemplateExternalRule": { + "properties": { + "apiGroups": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Policy rule api groups\n" + }, + "nonResourceUrls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Policy rule non resource urls\n" + }, + "resourceNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Policy rule resource names\n" + }, + "resources": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Policy rule resources\n" + }, + "verbs": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Policy rule verbs\n" + } + }, + "type": "object" + }, "rancher2:index/getRoleTemplateRule:getRoleTemplateRule": { "properties": { "apiGroups": { @@ -25137,7 +25227,7 @@ } }, "rancher2:index/cluster:Cluster": { - "description": "Provides a Rancher v2 Cluster resource. This can be used to create Clusters for Rancher v2 environments and retrieve their information.\n\n## Example Usage\n\n**Note optional/computed arguments** If any `optional/computed` argument of this resource is defined by the user, removing it from tf file will NOT reset its value. To reset it, let its definition at tf file as empty/false object. Ex: `enable_cluster_monitoring = false`, `cloud_provider {}`, `name = \"\"`\n\n### Creating Rancher v2 imported cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\n// Create a new rancher2 imported Cluster\nconst foo_imported = new rancher2.Cluster(\"foo-imported\", {\n name: \"foo-imported\",\n description: \"Foo rancher2 imported cluster\",\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\n# Create a new rancher2 imported Cluster\nfoo_imported = rancher2.Cluster(\"foo-imported\",\n name=\"foo-imported\",\n description=\"Foo rancher2 imported cluster\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Create a new rancher2 imported Cluster\n var foo_imported = new Rancher2.Cluster(\"foo-imported\", new()\n {\n Name = \"foo-imported\",\n Description = \"Foo rancher2 imported cluster\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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// Create a new rancher2 imported Cluster\n\t\t_, err := rancher2.NewCluster(ctx, \"foo-imported\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo-imported\"),\n\t\t\tDescription: pulumi.String(\"Foo rancher2 imported cluster\"),\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.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\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 // Create a new rancher2 imported Cluster\n var foo_imported = new Cluster(\"foo-imported\", ClusterArgs.builder()\n .name(\"foo-imported\")\n .description(\"Foo rancher2 imported cluster\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Create a new rancher2 imported Cluster\n foo-imported:\n type: rancher2:Cluster\n properties:\n name: foo-imported\n description: Foo rancher2 imported cluster\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nCreating Rancher v2 RKE cluster\n\n### Creating Rancher v2 RKE cluster enabling and customizing monitoring\n\n**Note** Cluster monitoring version `0.2.0` and above, can't be enabled until cluster is fully deployed as [`kubeVersion`](https://github.com/rancher/system-charts/blob/52be656700468904b9bf15c3f39cd7112e1f8c9b/charts/rancher-monitoring/v0.2.0/Chart.yaml#L12) requirement has been introduced to helm chart\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\n// Create a new rancher2 RKE Cluster\nconst foo_custom = new rancher2.Cluster(\"foo-custom\", {\n name: \"foo-custom\",\n description: \"Foo rancher2 custom cluster\",\n rkeConfig: {\n network: {\n plugin: \"canal\",\n },\n },\n enableClusterMonitoring: true,\n clusterMonitoringInput: {\n answers: {\n \"exporter-kubelets.https\": true,\n \"exporter-node.enabled\": true,\n \"exporter-node.ports.metrics.port\": 9796,\n \"exporter-node.resources.limits.cpu\": \"200m\",\n \"exporter-node.resources.limits.memory\": \"200Mi\",\n \"grafana.persistence.enabled\": false,\n \"grafana.persistence.size\": \"10Gi\",\n \"grafana.persistence.storageClass\": \"default\",\n \"operator.resources.limits.memory\": \"500Mi\",\n \"prometheus.persistence.enabled\": \"false\",\n \"prometheus.persistence.size\": \"50Gi\",\n \"prometheus.persistence.storageClass\": \"default\",\n \"prometheus.persistent.useReleaseName\": \"true\",\n \"prometheus.resources.core.limits.cpu\": \"1000m\",\n \"prometheus.resources.core.limits.memory\": \"1500Mi\",\n \"prometheus.resources.core.requests.cpu\": \"750m\",\n \"prometheus.resources.core.requests.memory\": \"750Mi\",\n \"prometheus.retention\": \"12h\",\n },\n version: \"0.1.0\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\n# Create a new rancher2 RKE Cluster\nfoo_custom = rancher2.Cluster(\"foo-custom\",\n name=\"foo-custom\",\n description=\"Foo rancher2 custom cluster\",\n rke_config=rancher2.ClusterRkeConfigArgs(\n network=rancher2.ClusterRkeConfigNetworkArgs(\n plugin=\"canal\",\n ),\n ),\n enable_cluster_monitoring=True,\n cluster_monitoring_input=rancher2.ClusterClusterMonitoringInputArgs(\n answers={\n \"exporter-kubelets.https\": True,\n \"exporter-node.enabled\": True,\n \"exporter-node.ports.metrics.port\": 9796,\n \"exporter-node.resources.limits.cpu\": \"200m\",\n \"exporter-node.resources.limits.memory\": \"200Mi\",\n \"grafana.persistence.enabled\": False,\n \"grafana.persistence.size\": \"10Gi\",\n \"grafana.persistence.storageClass\": \"default\",\n \"operator.resources.limits.memory\": \"500Mi\",\n \"prometheus.persistence.enabled\": \"false\",\n \"prometheus.persistence.size\": \"50Gi\",\n \"prometheus.persistence.storageClass\": \"default\",\n \"prometheus.persistent.useReleaseName\": \"true\",\n \"prometheus.resources.core.limits.cpu\": \"1000m\",\n \"prometheus.resources.core.limits.memory\": \"1500Mi\",\n \"prometheus.resources.core.requests.cpu\": \"750m\",\n \"prometheus.resources.core.requests.memory\": \"750Mi\",\n \"prometheus.retention\": \"12h\",\n },\n version=\"0.1.0\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Create a new rancher2 RKE Cluster\n var foo_custom = new Rancher2.Cluster(\"foo-custom\", new()\n {\n Name = \"foo-custom\",\n Description = \"Foo rancher2 custom cluster\",\n RkeConfig = new Rancher2.Inputs.ClusterRkeConfigArgs\n {\n Network = new Rancher2.Inputs.ClusterRkeConfigNetworkArgs\n {\n Plugin = \"canal\",\n },\n },\n EnableClusterMonitoring = true,\n ClusterMonitoringInput = new Rancher2.Inputs.ClusterClusterMonitoringInputArgs\n {\n Answers = \n {\n { \"exporter-kubelets.https\", true },\n { \"exporter-node.enabled\", true },\n { \"exporter-node.ports.metrics.port\", 9796 },\n { \"exporter-node.resources.limits.cpu\", \"200m\" },\n { \"exporter-node.resources.limits.memory\", \"200Mi\" },\n { \"grafana.persistence.enabled\", false },\n { \"grafana.persistence.size\", \"10Gi\" },\n { \"grafana.persistence.storageClass\", \"default\" },\n { \"operator.resources.limits.memory\", \"500Mi\" },\n { \"prometheus.persistence.enabled\", \"false\" },\n { \"prometheus.persistence.size\", \"50Gi\" },\n { \"prometheus.persistence.storageClass\", \"default\" },\n { \"prometheus.persistent.useReleaseName\", \"true\" },\n { \"prometheus.resources.core.limits.cpu\", \"1000m\" },\n { \"prometheus.resources.core.limits.memory\", \"1500Mi\" },\n { \"prometheus.resources.core.requests.cpu\", \"750m\" },\n { \"prometheus.resources.core.requests.memory\", \"750Mi\" },\n { \"prometheus.retention\", \"12h\" },\n },\n Version = \"0.1.0\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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// Create a new rancher2 RKE Cluster\n\t\t_, err := rancher2.NewCluster(ctx, \"foo-custom\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo-custom\"),\n\t\t\tDescription: pulumi.String(\"Foo rancher2 custom cluster\"),\n\t\t\tRkeConfig: \u0026rancher2.ClusterRkeConfigArgs{\n\t\t\t\tNetwork: \u0026rancher2.ClusterRkeConfigNetworkArgs{\n\t\t\t\t\tPlugin: pulumi.String(\"canal\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEnableClusterMonitoring: pulumi.Bool(true),\n\t\t\tClusterMonitoringInput: \u0026rancher2.ClusterClusterMonitoringInputArgs{\n\t\t\t\tAnswers: pulumi.Map{\n\t\t\t\t\t\"exporter-kubelets.https\": pulumi.Any(true),\n\t\t\t\t\t\"exporter-node.enabled\": pulumi.Any(true),\n\t\t\t\t\t\"exporter-node.ports.metrics.port\": pulumi.Any(9796),\n\t\t\t\t\t\"exporter-node.resources.limits.cpu\": pulumi.Any(\"200m\"),\n\t\t\t\t\t\"exporter-node.resources.limits.memory\": pulumi.Any(\"200Mi\"),\n\t\t\t\t\t\"grafana.persistence.enabled\": pulumi.Any(false),\n\t\t\t\t\t\"grafana.persistence.size\": pulumi.Any(\"10Gi\"),\n\t\t\t\t\t\"grafana.persistence.storageClass\": pulumi.Any(\"default\"),\n\t\t\t\t\t\"operator.resources.limits.memory\": pulumi.Any(\"500Mi\"),\n\t\t\t\t\t\"prometheus.persistence.enabled\": pulumi.Any(\"false\"),\n\t\t\t\t\t\"prometheus.persistence.size\": pulumi.Any(\"50Gi\"),\n\t\t\t\t\t\"prometheus.persistence.storageClass\": pulumi.Any(\"default\"),\n\t\t\t\t\t\"prometheus.persistent.useReleaseName\": pulumi.Any(\"true\"),\n\t\t\t\t\t\"prometheus.resources.core.limits.cpu\": pulumi.Any(\"1000m\"),\n\t\t\t\t\t\"prometheus.resources.core.limits.memory\": pulumi.Any(\"1500Mi\"),\n\t\t\t\t\t\"prometheus.resources.core.requests.cpu\": pulumi.Any(\"750m\"),\n\t\t\t\t\t\"prometheus.resources.core.requests.memory\": pulumi.Any(\"750Mi\"),\n\t\t\t\t\t\"prometheus.retention\": pulumi.Any(\"12h\"),\n\t\t\t\t},\n\t\t\t\tVersion: pulumi.String(\"0.1.0\"),\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.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigNetworkArgs;\nimport com.pulumi.rancher2.inputs.ClusterClusterMonitoringInputArgs;\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 // Create a new rancher2 RKE Cluster\n var foo_custom = new Cluster(\"foo-custom\", ClusterArgs.builder()\n .name(\"foo-custom\")\n .description(\"Foo rancher2 custom cluster\")\n .rkeConfig(ClusterRkeConfigArgs.builder()\n .network(ClusterRkeConfigNetworkArgs.builder()\n .plugin(\"canal\")\n .build())\n .build())\n .enableClusterMonitoring(true)\n .clusterMonitoringInput(ClusterClusterMonitoringInputArgs.builder()\n .answers(Map.ofEntries(\n Map.entry(\"exporter-kubelets.https\", true),\n Map.entry(\"exporter-node.enabled\", true),\n Map.entry(\"exporter-node.ports.metrics.port\", 9796),\n Map.entry(\"exporter-node.resources.limits.cpu\", \"200m\"),\n Map.entry(\"exporter-node.resources.limits.memory\", \"200Mi\"),\n Map.entry(\"grafana.persistence.enabled\", false),\n Map.entry(\"grafana.persistence.size\", \"10Gi\"),\n Map.entry(\"grafana.persistence.storageClass\", \"default\"),\n Map.entry(\"operator.resources.limits.memory\", \"500Mi\"),\n Map.entry(\"prometheus.persistence.enabled\", \"false\"),\n Map.entry(\"prometheus.persistence.size\", \"50Gi\"),\n Map.entry(\"prometheus.persistence.storageClass\", \"default\"),\n Map.entry(\"prometheus.persistent.useReleaseName\", \"true\"),\n Map.entry(\"prometheus.resources.core.limits.cpu\", \"1000m\"),\n Map.entry(\"prometheus.resources.core.limits.memory\", \"1500Mi\"),\n Map.entry(\"prometheus.resources.core.requests.cpu\", \"750m\"),\n Map.entry(\"prometheus.resources.core.requests.memory\", \"750Mi\"),\n Map.entry(\"prometheus.retention\", \"12h\")\n ))\n .version(\"0.1.0\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Create a new rancher2 RKE Cluster\n foo-custom:\n type: rancher2:Cluster\n properties:\n name: foo-custom\n description: Foo rancher2 custom cluster\n rkeConfig:\n network:\n plugin: canal\n enableClusterMonitoring: true\n clusterMonitoringInput:\n answers:\n exporter-kubelets.https: true\n exporter-node.enabled: true\n exporter-node.ports.metrics.port: 9796\n exporter-node.resources.limits.cpu: 200m\n exporter-node.resources.limits.memory: 200Mi\n grafana.persistence.enabled: false\n grafana.persistence.size: 10Gi\n grafana.persistence.storageClass: default\n operator.resources.limits.memory: 500Mi\n prometheus.persistence.enabled: 'false'\n prometheus.persistence.size: 50Gi\n prometheus.persistence.storageClass: default\n prometheus.persistent.useReleaseName: 'true'\n prometheus.resources.core.limits.cpu: 1000m\n prometheus.resources.core.limits.memory: 1500Mi\n prometheus.resources.core.requests.cpu: 750m\n prometheus.resources.core.requests.memory: 750Mi\n prometheus.retention: 12h\n version: 0.1.0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Rancher v2 RKE cluster enabling/customizing monitoring and istio\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\n// Create a new rancher2 RKE Cluster\nconst foo_custom = new rancher2.Cluster(\"foo-custom\", {\n name: \"foo-custom\",\n description: \"Foo rancher2 custom cluster\",\n rkeConfig: {\n network: {\n plugin: \"canal\",\n },\n },\n enableClusterMonitoring: true,\n clusterMonitoringInput: {\n answers: {\n \"exporter-kubelets.https\": true,\n \"exporter-node.enabled\": true,\n \"exporter-node.ports.metrics.port\": 9796,\n \"exporter-node.resources.limits.cpu\": \"200m\",\n \"exporter-node.resources.limits.memory\": \"200Mi\",\n \"grafana.persistence.enabled\": false,\n \"grafana.persistence.size\": \"10Gi\",\n \"grafana.persistence.storageClass\": \"default\",\n \"operator.resources.limits.memory\": \"500Mi\",\n \"prometheus.persistence.enabled\": \"false\",\n \"prometheus.persistence.size\": \"50Gi\",\n \"prometheus.persistence.storageClass\": \"default\",\n \"prometheus.persistent.useReleaseName\": \"true\",\n \"prometheus.resources.core.limits.cpu\": \"1000m\",\n \"prometheus.resources.core.limits.memory\": \"1500Mi\",\n \"prometheus.resources.core.requests.cpu\": \"750m\",\n \"prometheus.resources.core.requests.memory\": \"750Mi\",\n \"prometheus.retention\": \"12h\",\n },\n version: \"0.1.0\",\n },\n});\n// Create a new rancher2 Cluster Sync for foo-custom cluster\nconst foo_customClusterSync = new rancher2.ClusterSync(\"foo-custom\", {\n clusterId: foo_custom.id,\n waitMonitoring: foo_custom.enableClusterMonitoring,\n});\n// Create a new rancher2 Namespace\nconst foo_istio = new rancher2.Namespace(\"foo-istio\", {\n name: \"istio-system\",\n projectId: foo_customClusterSync.systemProjectId,\n description: \"istio namespace\",\n});\n// Create a new rancher2 App deploying istio (should wait until monitoring is up and running)\nconst istio = new rancher2.App(\"istio\", {\n catalogName: \"system-library\",\n name: \"cluster-istio\",\n description: \"Terraform app acceptance test\",\n projectId: foo_istio.projectId,\n templateName: \"rancher-istio\",\n templateVersion: \"0.1.1\",\n targetNamespace: foo_istio.id,\n answers: {\n \"certmanager.enabled\": false,\n enableCRDs: true,\n \"galley.enabled\": true,\n \"gateways.enabled\": false,\n \"gateways.istio-ingressgateway.resources.limits.cpu\": \"2000m\",\n \"gateways.istio-ingressgateway.resources.limits.memory\": \"1024Mi\",\n \"gateways.istio-ingressgateway.resources.requests.cpu\": \"100m\",\n \"gateways.istio-ingressgateway.resources.requests.memory\": \"128Mi\",\n \"gateways.istio-ingressgateway.type\": \"NodePort\",\n \"global.monitoring.type\": \"cluster-monitoring\",\n \"global.rancher.clusterId\": foo_customClusterSync.clusterId,\n \"istio_cni.enabled\": \"false\",\n \"istiocoredns.enabled\": \"false\",\n \"kiali.enabled\": \"true\",\n \"mixer.enabled\": \"true\",\n \"mixer.policy.enabled\": \"true\",\n \"mixer.policy.resources.limits.cpu\": \"4800m\",\n \"mixer.policy.resources.limits.memory\": \"4096Mi\",\n \"mixer.policy.resources.requests.cpu\": \"1000m\",\n \"mixer.policy.resources.requests.memory\": \"1024Mi\",\n \"mixer.telemetry.resources.limits.cpu\": \"4800m\",\n \"mixer.telemetry.resources.limits.memory\": \"4096Mi\",\n \"mixer.telemetry.resources.requests.cpu\": \"1000m\",\n \"mixer.telemetry.resources.requests.memory\": \"1024Mi\",\n \"mtls.enabled\": false,\n \"nodeagent.enabled\": false,\n \"pilot.enabled\": true,\n \"pilot.resources.limits.cpu\": \"1000m\",\n \"pilot.resources.limits.memory\": \"4096Mi\",\n \"pilot.resources.requests.cpu\": \"500m\",\n \"pilot.resources.requests.memory\": \"2048Mi\",\n \"pilot.traceSampling\": \"1\",\n \"security.enabled\": true,\n \"sidecarInjectorWebhook.enabled\": true,\n \"tracing.enabled\": true,\n \"tracing.jaeger.resources.limits.cpu\": \"500m\",\n \"tracing.jaeger.resources.limits.memory\": \"1024Mi\",\n \"tracing.jaeger.resources.requests.cpu\": \"100m\",\n \"tracing.jaeger.resources.requests.memory\": \"100Mi\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\n# Create a new rancher2 RKE Cluster\nfoo_custom = rancher2.Cluster(\"foo-custom\",\n name=\"foo-custom\",\n description=\"Foo rancher2 custom cluster\",\n rke_config=rancher2.ClusterRkeConfigArgs(\n network=rancher2.ClusterRkeConfigNetworkArgs(\n plugin=\"canal\",\n ),\n ),\n enable_cluster_monitoring=True,\n cluster_monitoring_input=rancher2.ClusterClusterMonitoringInputArgs(\n answers={\n \"exporter-kubelets.https\": True,\n \"exporter-node.enabled\": True,\n \"exporter-node.ports.metrics.port\": 9796,\n \"exporter-node.resources.limits.cpu\": \"200m\",\n \"exporter-node.resources.limits.memory\": \"200Mi\",\n \"grafana.persistence.enabled\": False,\n \"grafana.persistence.size\": \"10Gi\",\n \"grafana.persistence.storageClass\": \"default\",\n \"operator.resources.limits.memory\": \"500Mi\",\n \"prometheus.persistence.enabled\": \"false\",\n \"prometheus.persistence.size\": \"50Gi\",\n \"prometheus.persistence.storageClass\": \"default\",\n \"prometheus.persistent.useReleaseName\": \"true\",\n \"prometheus.resources.core.limits.cpu\": \"1000m\",\n \"prometheus.resources.core.limits.memory\": \"1500Mi\",\n \"prometheus.resources.core.requests.cpu\": \"750m\",\n \"prometheus.resources.core.requests.memory\": \"750Mi\",\n \"prometheus.retention\": \"12h\",\n },\n version=\"0.1.0\",\n ))\n# Create a new rancher2 Cluster Sync for foo-custom cluster\nfoo_custom_cluster_sync = rancher2.ClusterSync(\"foo-custom\",\n cluster_id=foo_custom.id,\n wait_monitoring=foo_custom.enable_cluster_monitoring)\n# Create a new rancher2 Namespace\nfoo_istio = rancher2.Namespace(\"foo-istio\",\n name=\"istio-system\",\n project_id=foo_custom_cluster_sync.system_project_id,\n description=\"istio namespace\")\n# Create a new rancher2 App deploying istio (should wait until monitoring is up and running)\nistio = rancher2.App(\"istio\",\n catalog_name=\"system-library\",\n name=\"cluster-istio\",\n description=\"Terraform app acceptance test\",\n project_id=foo_istio.project_id,\n template_name=\"rancher-istio\",\n template_version=\"0.1.1\",\n target_namespace=foo_istio.id,\n answers={\n \"certmanager.enabled\": False,\n \"enableCRDs\": True,\n \"galley.enabled\": True,\n \"gateways.enabled\": False,\n \"gateways.istio-ingressgateway.resources.limits.cpu\": \"2000m\",\n \"gateways.istio-ingressgateway.resources.limits.memory\": \"1024Mi\",\n \"gateways.istio-ingressgateway.resources.requests.cpu\": \"100m\",\n \"gateways.istio-ingressgateway.resources.requests.memory\": \"128Mi\",\n \"gateways.istio-ingressgateway.type\": \"NodePort\",\n \"global.monitoring.type\": \"cluster-monitoring\",\n \"global.rancher.clusterId\": foo_custom_cluster_sync.cluster_id,\n \"istio_cni.enabled\": \"false\",\n \"istiocoredns.enabled\": \"false\",\n \"kiali.enabled\": \"true\",\n \"mixer.enabled\": \"true\",\n \"mixer.policy.enabled\": \"true\",\n \"mixer.policy.resources.limits.cpu\": \"4800m\",\n \"mixer.policy.resources.limits.memory\": \"4096Mi\",\n \"mixer.policy.resources.requests.cpu\": \"1000m\",\n \"mixer.policy.resources.requests.memory\": \"1024Mi\",\n \"mixer.telemetry.resources.limits.cpu\": \"4800m\",\n \"mixer.telemetry.resources.limits.memory\": \"4096Mi\",\n \"mixer.telemetry.resources.requests.cpu\": \"1000m\",\n \"mixer.telemetry.resources.requests.memory\": \"1024Mi\",\n \"mtls.enabled\": False,\n \"nodeagent.enabled\": False,\n \"pilot.enabled\": True,\n \"pilot.resources.limits.cpu\": \"1000m\",\n \"pilot.resources.limits.memory\": \"4096Mi\",\n \"pilot.resources.requests.cpu\": \"500m\",\n \"pilot.resources.requests.memory\": \"2048Mi\",\n \"pilot.traceSampling\": \"1\",\n \"security.enabled\": True,\n \"sidecarInjectorWebhook.enabled\": True,\n \"tracing.enabled\": True,\n \"tracing.jaeger.resources.limits.cpu\": \"500m\",\n \"tracing.jaeger.resources.limits.memory\": \"1024Mi\",\n \"tracing.jaeger.resources.requests.cpu\": \"100m\",\n \"tracing.jaeger.resources.requests.memory\": \"100Mi\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Create a new rancher2 RKE Cluster\n var foo_custom = new Rancher2.Cluster(\"foo-custom\", new()\n {\n Name = \"foo-custom\",\n Description = \"Foo rancher2 custom cluster\",\n RkeConfig = new Rancher2.Inputs.ClusterRkeConfigArgs\n {\n Network = new Rancher2.Inputs.ClusterRkeConfigNetworkArgs\n {\n Plugin = \"canal\",\n },\n },\n EnableClusterMonitoring = true,\n ClusterMonitoringInput = new Rancher2.Inputs.ClusterClusterMonitoringInputArgs\n {\n Answers = \n {\n { \"exporter-kubelets.https\", true },\n { \"exporter-node.enabled\", true },\n { \"exporter-node.ports.metrics.port\", 9796 },\n { \"exporter-node.resources.limits.cpu\", \"200m\" },\n { \"exporter-node.resources.limits.memory\", \"200Mi\" },\n { \"grafana.persistence.enabled\", false },\n { \"grafana.persistence.size\", \"10Gi\" },\n { \"grafana.persistence.storageClass\", \"default\" },\n { \"operator.resources.limits.memory\", \"500Mi\" },\n { \"prometheus.persistence.enabled\", \"false\" },\n { \"prometheus.persistence.size\", \"50Gi\" },\n { \"prometheus.persistence.storageClass\", \"default\" },\n { \"prometheus.persistent.useReleaseName\", \"true\" },\n { \"prometheus.resources.core.limits.cpu\", \"1000m\" },\n { \"prometheus.resources.core.limits.memory\", \"1500Mi\" },\n { \"prometheus.resources.core.requests.cpu\", \"750m\" },\n { \"prometheus.resources.core.requests.memory\", \"750Mi\" },\n { \"prometheus.retention\", \"12h\" },\n },\n Version = \"0.1.0\",\n },\n });\n\n // Create a new rancher2 Cluster Sync for foo-custom cluster\n var foo_customClusterSync = new Rancher2.ClusterSync(\"foo-custom\", new()\n {\n ClusterId = foo_custom.Id,\n WaitMonitoring = foo_custom.EnableClusterMonitoring,\n });\n\n // Create a new rancher2 Namespace\n var foo_istio = new Rancher2.Namespace(\"foo-istio\", new()\n {\n Name = \"istio-system\",\n ProjectId = foo_customClusterSync.SystemProjectId,\n Description = \"istio namespace\",\n });\n\n // Create a new rancher2 App deploying istio (should wait until monitoring is up and running)\n var istio = new Rancher2.App(\"istio\", new()\n {\n CatalogName = \"system-library\",\n Name = \"cluster-istio\",\n Description = \"Terraform app acceptance test\",\n ProjectId = foo_istio.ProjectId,\n TemplateName = \"rancher-istio\",\n TemplateVersion = \"0.1.1\",\n TargetNamespace = foo_istio.Id,\n Answers = \n {\n { \"certmanager.enabled\", false },\n { \"enableCRDs\", true },\n { \"galley.enabled\", true },\n { \"gateways.enabled\", false },\n { \"gateways.istio-ingressgateway.resources.limits.cpu\", \"2000m\" },\n { \"gateways.istio-ingressgateway.resources.limits.memory\", \"1024Mi\" },\n { \"gateways.istio-ingressgateway.resources.requests.cpu\", \"100m\" },\n { \"gateways.istio-ingressgateway.resources.requests.memory\", \"128Mi\" },\n { \"gateways.istio-ingressgateway.type\", \"NodePort\" },\n { \"global.monitoring.type\", \"cluster-monitoring\" },\n { \"global.rancher.clusterId\", foo_customClusterSync.ClusterId },\n { \"istio_cni.enabled\", \"false\" },\n { \"istiocoredns.enabled\", \"false\" },\n { \"kiali.enabled\", \"true\" },\n { \"mixer.enabled\", \"true\" },\n { \"mixer.policy.enabled\", \"true\" },\n { \"mixer.policy.resources.limits.cpu\", \"4800m\" },\n { \"mixer.policy.resources.limits.memory\", \"4096Mi\" },\n { \"mixer.policy.resources.requests.cpu\", \"1000m\" },\n { \"mixer.policy.resources.requests.memory\", \"1024Mi\" },\n { \"mixer.telemetry.resources.limits.cpu\", \"4800m\" },\n { \"mixer.telemetry.resources.limits.memory\", \"4096Mi\" },\n { \"mixer.telemetry.resources.requests.cpu\", \"1000m\" },\n { \"mixer.telemetry.resources.requests.memory\", \"1024Mi\" },\n { \"mtls.enabled\", false },\n { \"nodeagent.enabled\", false },\n { \"pilot.enabled\", true },\n { \"pilot.resources.limits.cpu\", \"1000m\" },\n { \"pilot.resources.limits.memory\", \"4096Mi\" },\n { \"pilot.resources.requests.cpu\", \"500m\" },\n { \"pilot.resources.requests.memory\", \"2048Mi\" },\n { \"pilot.traceSampling\", \"1\" },\n { \"security.enabled\", true },\n { \"sidecarInjectorWebhook.enabled\", true },\n { \"tracing.enabled\", true },\n { \"tracing.jaeger.resources.limits.cpu\", \"500m\" },\n { \"tracing.jaeger.resources.limits.memory\", \"1024Mi\" },\n { \"tracing.jaeger.resources.requests.cpu\", \"100m\" },\n { \"tracing.jaeger.resources.requests.memory\", \"100Mi\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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// Create a new rancher2 RKE Cluster\n\t\t_, err := rancher2.NewCluster(ctx, \"foo-custom\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo-custom\"),\n\t\t\tDescription: pulumi.String(\"Foo rancher2 custom cluster\"),\n\t\t\tRkeConfig: \u0026rancher2.ClusterRkeConfigArgs{\n\t\t\t\tNetwork: \u0026rancher2.ClusterRkeConfigNetworkArgs{\n\t\t\t\t\tPlugin: pulumi.String(\"canal\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEnableClusterMonitoring: pulumi.Bool(true),\n\t\t\tClusterMonitoringInput: \u0026rancher2.ClusterClusterMonitoringInputArgs{\n\t\t\t\tAnswers: pulumi.Map{\n\t\t\t\t\t\"exporter-kubelets.https\": pulumi.Any(true),\n\t\t\t\t\t\"exporter-node.enabled\": pulumi.Any(true),\n\t\t\t\t\t\"exporter-node.ports.metrics.port\": pulumi.Any(9796),\n\t\t\t\t\t\"exporter-node.resources.limits.cpu\": pulumi.Any(\"200m\"),\n\t\t\t\t\t\"exporter-node.resources.limits.memory\": pulumi.Any(\"200Mi\"),\n\t\t\t\t\t\"grafana.persistence.enabled\": pulumi.Any(false),\n\t\t\t\t\t\"grafana.persistence.size\": pulumi.Any(\"10Gi\"),\n\t\t\t\t\t\"grafana.persistence.storageClass\": pulumi.Any(\"default\"),\n\t\t\t\t\t\"operator.resources.limits.memory\": pulumi.Any(\"500Mi\"),\n\t\t\t\t\t\"prometheus.persistence.enabled\": pulumi.Any(\"false\"),\n\t\t\t\t\t\"prometheus.persistence.size\": pulumi.Any(\"50Gi\"),\n\t\t\t\t\t\"prometheus.persistence.storageClass\": pulumi.Any(\"default\"),\n\t\t\t\t\t\"prometheus.persistent.useReleaseName\": pulumi.Any(\"true\"),\n\t\t\t\t\t\"prometheus.resources.core.limits.cpu\": pulumi.Any(\"1000m\"),\n\t\t\t\t\t\"prometheus.resources.core.limits.memory\": pulumi.Any(\"1500Mi\"),\n\t\t\t\t\t\"prometheus.resources.core.requests.cpu\": pulumi.Any(\"750m\"),\n\t\t\t\t\t\"prometheus.resources.core.requests.memory\": pulumi.Any(\"750Mi\"),\n\t\t\t\t\t\"prometheus.retention\": pulumi.Any(\"12h\"),\n\t\t\t\t},\n\t\t\t\tVersion: pulumi.String(\"0.1.0\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new rancher2 Cluster Sync for foo-custom cluster\n\t\t_, err = rancher2.NewClusterSync(ctx, \"foo-custom\", \u0026rancher2.ClusterSyncArgs{\n\t\t\tClusterId: foo_custom.ID(),\n\t\t\tWaitMonitoring: foo_custom.EnableClusterMonitoring,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new rancher2 Namespace\n\t\t_, err = rancher2.NewNamespace(ctx, \"foo-istio\", \u0026rancher2.NamespaceArgs{\n\t\t\tName: pulumi.String(\"istio-system\"),\n\t\t\tProjectId: foo_customClusterSync.SystemProjectId,\n\t\t\tDescription: pulumi.String(\"istio namespace\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new rancher2 App deploying istio (should wait until monitoring is up and running)\n\t\t_, err = rancher2.NewApp(ctx, \"istio\", \u0026rancher2.AppArgs{\n\t\t\tCatalogName: pulumi.String(\"system-library\"),\n\t\t\tName: pulumi.String(\"cluster-istio\"),\n\t\t\tDescription: pulumi.String(\"Terraform app acceptance test\"),\n\t\t\tProjectId: foo_istio.ProjectId,\n\t\t\tTemplateName: pulumi.String(\"rancher-istio\"),\n\t\t\tTemplateVersion: pulumi.String(\"0.1.1\"),\n\t\t\tTargetNamespace: foo_istio.ID(),\n\t\t\tAnswers: pulumi.Map{\n\t\t\t\t\"certmanager.enabled\": pulumi.Any(false),\n\t\t\t\t\"enableCRDs\": pulumi.Any(true),\n\t\t\t\t\"galley.enabled\": pulumi.Any(true),\n\t\t\t\t\"gateways.enabled\": pulumi.Any(false),\n\t\t\t\t\"gateways.istio-ingressgateway.resources.limits.cpu\": pulumi.Any(\"2000m\"),\n\t\t\t\t\"gateways.istio-ingressgateway.resources.limits.memory\": pulumi.Any(\"1024Mi\"),\n\t\t\t\t\"gateways.istio-ingressgateway.resources.requests.cpu\": pulumi.Any(\"100m\"),\n\t\t\t\t\"gateways.istio-ingressgateway.resources.requests.memory\": pulumi.Any(\"128Mi\"),\n\t\t\t\t\"gateways.istio-ingressgateway.type\": pulumi.Any(\"NodePort\"),\n\t\t\t\t\"global.monitoring.type\": pulumi.Any(\"cluster-monitoring\"),\n\t\t\t\t\"global.rancher.clusterId\": foo_customClusterSync.ClusterId,\n\t\t\t\t\"istio_cni.enabled\": pulumi.Any(\"false\"),\n\t\t\t\t\"istiocoredns.enabled\": pulumi.Any(\"false\"),\n\t\t\t\t\"kiali.enabled\": pulumi.Any(\"true\"),\n\t\t\t\t\"mixer.enabled\": pulumi.Any(\"true\"),\n\t\t\t\t\"mixer.policy.enabled\": pulumi.Any(\"true\"),\n\t\t\t\t\"mixer.policy.resources.limits.cpu\": pulumi.Any(\"4800m\"),\n\t\t\t\t\"mixer.policy.resources.limits.memory\": pulumi.Any(\"4096Mi\"),\n\t\t\t\t\"mixer.policy.resources.requests.cpu\": pulumi.Any(\"1000m\"),\n\t\t\t\t\"mixer.policy.resources.requests.memory\": pulumi.Any(\"1024Mi\"),\n\t\t\t\t\"mixer.telemetry.resources.limits.cpu\": pulumi.Any(\"4800m\"),\n\t\t\t\t\"mixer.telemetry.resources.limits.memory\": pulumi.Any(\"4096Mi\"),\n\t\t\t\t\"mixer.telemetry.resources.requests.cpu\": pulumi.Any(\"1000m\"),\n\t\t\t\t\"mixer.telemetry.resources.requests.memory\": pulumi.Any(\"1024Mi\"),\n\t\t\t\t\"mtls.enabled\": pulumi.Any(false),\n\t\t\t\t\"nodeagent.enabled\": pulumi.Any(false),\n\t\t\t\t\"pilot.enabled\": pulumi.Any(true),\n\t\t\t\t\"pilot.resources.limits.cpu\": pulumi.Any(\"1000m\"),\n\t\t\t\t\"pilot.resources.limits.memory\": pulumi.Any(\"4096Mi\"),\n\t\t\t\t\"pilot.resources.requests.cpu\": pulumi.Any(\"500m\"),\n\t\t\t\t\"pilot.resources.requests.memory\": pulumi.Any(\"2048Mi\"),\n\t\t\t\t\"pilot.traceSampling\": pulumi.Any(\"1\"),\n\t\t\t\t\"security.enabled\": pulumi.Any(true),\n\t\t\t\t\"sidecarInjectorWebhook.enabled\": pulumi.Any(true),\n\t\t\t\t\"tracing.enabled\": pulumi.Any(true),\n\t\t\t\t\"tracing.jaeger.resources.limits.cpu\": pulumi.Any(\"500m\"),\n\t\t\t\t\"tracing.jaeger.resources.limits.memory\": pulumi.Any(\"1024Mi\"),\n\t\t\t\t\"tracing.jaeger.resources.requests.cpu\": pulumi.Any(\"100m\"),\n\t\t\t\t\"tracing.jaeger.resources.requests.memory\": pulumi.Any(\"100Mi\"),\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.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigNetworkArgs;\nimport com.pulumi.rancher2.inputs.ClusterClusterMonitoringInputArgs;\nimport com.pulumi.rancher2.ClusterSync;\nimport com.pulumi.rancher2.ClusterSyncArgs;\nimport com.pulumi.rancher2.Namespace;\nimport com.pulumi.rancher2.NamespaceArgs;\nimport com.pulumi.rancher2.App;\nimport com.pulumi.rancher2.AppArgs;\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 // Create a new rancher2 RKE Cluster\n var foo_custom = new Cluster(\"foo-custom\", ClusterArgs.builder()\n .name(\"foo-custom\")\n .description(\"Foo rancher2 custom cluster\")\n .rkeConfig(ClusterRkeConfigArgs.builder()\n .network(ClusterRkeConfigNetworkArgs.builder()\n .plugin(\"canal\")\n .build())\n .build())\n .enableClusterMonitoring(true)\n .clusterMonitoringInput(ClusterClusterMonitoringInputArgs.builder()\n .answers(Map.ofEntries(\n Map.entry(\"exporter-kubelets.https\", true),\n Map.entry(\"exporter-node.enabled\", true),\n Map.entry(\"exporter-node.ports.metrics.port\", 9796),\n Map.entry(\"exporter-node.resources.limits.cpu\", \"200m\"),\n Map.entry(\"exporter-node.resources.limits.memory\", \"200Mi\"),\n Map.entry(\"grafana.persistence.enabled\", false),\n Map.entry(\"grafana.persistence.size\", \"10Gi\"),\n Map.entry(\"grafana.persistence.storageClass\", \"default\"),\n Map.entry(\"operator.resources.limits.memory\", \"500Mi\"),\n Map.entry(\"prometheus.persistence.enabled\", \"false\"),\n Map.entry(\"prometheus.persistence.size\", \"50Gi\"),\n Map.entry(\"prometheus.persistence.storageClass\", \"default\"),\n Map.entry(\"prometheus.persistent.useReleaseName\", \"true\"),\n Map.entry(\"prometheus.resources.core.limits.cpu\", \"1000m\"),\n Map.entry(\"prometheus.resources.core.limits.memory\", \"1500Mi\"),\n Map.entry(\"prometheus.resources.core.requests.cpu\", \"750m\"),\n Map.entry(\"prometheus.resources.core.requests.memory\", \"750Mi\"),\n Map.entry(\"prometheus.retention\", \"12h\")\n ))\n .version(\"0.1.0\")\n .build())\n .build());\n\n // Create a new rancher2 Cluster Sync for foo-custom cluster\n var foo_customClusterSync = new ClusterSync(\"foo-customClusterSync\", ClusterSyncArgs.builder()\n .clusterId(foo_custom.id())\n .waitMonitoring(foo_custom.enableClusterMonitoring())\n .build());\n\n // Create a new rancher2 Namespace\n var foo_istio = new Namespace(\"foo-istio\", NamespaceArgs.builder()\n .name(\"istio-system\")\n .projectId(foo_customClusterSync.systemProjectId())\n .description(\"istio namespace\")\n .build());\n\n // Create a new rancher2 App deploying istio (should wait until monitoring is up and running)\n var istio = new App(\"istio\", AppArgs.builder()\n .catalogName(\"system-library\")\n .name(\"cluster-istio\")\n .description(\"Terraform app acceptance test\")\n .projectId(foo_istio.projectId())\n .templateName(\"rancher-istio\")\n .templateVersion(\"0.1.1\")\n .targetNamespace(foo_istio.id())\n .answers(Map.ofEntries(\n Map.entry(\"certmanager.enabled\", false),\n Map.entry(\"enableCRDs\", true),\n Map.entry(\"galley.enabled\", true),\n Map.entry(\"gateways.enabled\", false),\n Map.entry(\"gateways.istio-ingressgateway.resources.limits.cpu\", \"2000m\"),\n Map.entry(\"gateways.istio-ingressgateway.resources.limits.memory\", \"1024Mi\"),\n Map.entry(\"gateways.istio-ingressgateway.resources.requests.cpu\", \"100m\"),\n Map.entry(\"gateways.istio-ingressgateway.resources.requests.memory\", \"128Mi\"),\n Map.entry(\"gateways.istio-ingressgateway.type\", \"NodePort\"),\n Map.entry(\"global.monitoring.type\", \"cluster-monitoring\"),\n Map.entry(\"global.rancher.clusterId\", foo_customClusterSync.clusterId()),\n Map.entry(\"istio_cni.enabled\", \"false\"),\n Map.entry(\"istiocoredns.enabled\", \"false\"),\n Map.entry(\"kiali.enabled\", \"true\"),\n Map.entry(\"mixer.enabled\", \"true\"),\n Map.entry(\"mixer.policy.enabled\", \"true\"),\n Map.entry(\"mixer.policy.resources.limits.cpu\", \"4800m\"),\n Map.entry(\"mixer.policy.resources.limits.memory\", \"4096Mi\"),\n Map.entry(\"mixer.policy.resources.requests.cpu\", \"1000m\"),\n Map.entry(\"mixer.policy.resources.requests.memory\", \"1024Mi\"),\n Map.entry(\"mixer.telemetry.resources.limits.cpu\", \"4800m\"),\n Map.entry(\"mixer.telemetry.resources.limits.memory\", \"4096Mi\"),\n Map.entry(\"mixer.telemetry.resources.requests.cpu\", \"1000m\"),\n Map.entry(\"mixer.telemetry.resources.requests.memory\", \"1024Mi\"),\n Map.entry(\"mtls.enabled\", false),\n Map.entry(\"nodeagent.enabled\", false),\n Map.entry(\"pilot.enabled\", true),\n Map.entry(\"pilot.resources.limits.cpu\", \"1000m\"),\n Map.entry(\"pilot.resources.limits.memory\", \"4096Mi\"),\n Map.entry(\"pilot.resources.requests.cpu\", \"500m\"),\n Map.entry(\"pilot.resources.requests.memory\", \"2048Mi\"),\n Map.entry(\"pilot.traceSampling\", \"1\"),\n Map.entry(\"security.enabled\", true),\n Map.entry(\"sidecarInjectorWebhook.enabled\", true),\n Map.entry(\"tracing.enabled\", true),\n Map.entry(\"tracing.jaeger.resources.limits.cpu\", \"500m\"),\n Map.entry(\"tracing.jaeger.resources.limits.memory\", \"1024Mi\"),\n Map.entry(\"tracing.jaeger.resources.requests.cpu\", \"100m\"),\n Map.entry(\"tracing.jaeger.resources.requests.memory\", \"100Mi\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Create a new rancher2 RKE Cluster\n foo-custom:\n type: rancher2:Cluster\n properties:\n name: foo-custom\n description: Foo rancher2 custom cluster\n rkeConfig:\n network:\n plugin: canal\n enableClusterMonitoring: true\n clusterMonitoringInput:\n answers:\n exporter-kubelets.https: true\n exporter-node.enabled: true\n exporter-node.ports.metrics.port: 9796\n exporter-node.resources.limits.cpu: 200m\n exporter-node.resources.limits.memory: 200Mi\n grafana.persistence.enabled: false\n grafana.persistence.size: 10Gi\n grafana.persistence.storageClass: default\n operator.resources.limits.memory: 500Mi\n prometheus.persistence.enabled: 'false'\n prometheus.persistence.size: 50Gi\n prometheus.persistence.storageClass: default\n prometheus.persistent.useReleaseName: 'true'\n prometheus.resources.core.limits.cpu: 1000m\n prometheus.resources.core.limits.memory: 1500Mi\n prometheus.resources.core.requests.cpu: 750m\n prometheus.resources.core.requests.memory: 750Mi\n prometheus.retention: 12h\n version: 0.1.0\n # Create a new rancher2 Cluster Sync for foo-custom cluster\n foo-customClusterSync:\n type: rancher2:ClusterSync\n name: foo-custom\n properties:\n clusterId: ${[\"foo-custom\"].id}\n waitMonitoring: ${[\"foo-custom\"].enableClusterMonitoring}\n # Create a new rancher2 Namespace\n foo-istio:\n type: rancher2:Namespace\n properties:\n name: istio-system\n projectId: ${[\"foo-customClusterSync\"].systemProjectId}\n description: istio namespace\n # Create a new rancher2 App deploying istio (should wait until monitoring is up and running)\n istio:\n type: rancher2:App\n properties:\n catalogName: system-library\n name: cluster-istio\n description: Terraform app acceptance test\n projectId: ${[\"foo-istio\"].projectId}\n templateName: rancher-istio\n templateVersion: 0.1.1\n targetNamespace: ${[\"foo-istio\"].id}\n answers:\n certmanager.enabled: false\n enableCRDs: true\n galley.enabled: true\n gateways.enabled: false\n gateways.istio-ingressgateway.resources.limits.cpu: 2000m\n gateways.istio-ingressgateway.resources.limits.memory: 1024Mi\n gateways.istio-ingressgateway.resources.requests.cpu: 100m\n gateways.istio-ingressgateway.resources.requests.memory: 128Mi\n gateways.istio-ingressgateway.type: NodePort\n global.monitoring.type: cluster-monitoring\n global.rancher.clusterId: ${[\"foo-customClusterSync\"].clusterId}\n istio_cni.enabled: 'false'\n istiocoredns.enabled: 'false'\n kiali.enabled: 'true'\n mixer.enabled: 'true'\n mixer.policy.enabled: 'true'\n mixer.policy.resources.limits.cpu: 4800m\n mixer.policy.resources.limits.memory: 4096Mi\n mixer.policy.resources.requests.cpu: 1000m\n mixer.policy.resources.requests.memory: 1024Mi\n mixer.telemetry.resources.limits.cpu: 4800m\n mixer.telemetry.resources.limits.memory: 4096Mi\n mixer.telemetry.resources.requests.cpu: 1000m\n mixer.telemetry.resources.requests.memory: 1024Mi\n mtls.enabled: false\n nodeagent.enabled: false\n pilot.enabled: true\n pilot.resources.limits.cpu: 1000m\n pilot.resources.limits.memory: 4096Mi\n pilot.resources.requests.cpu: 500m\n pilot.resources.requests.memory: 2048Mi\n pilot.traceSampling: '1'\n security.enabled: true\n sidecarInjectorWebhook.enabled: true\n tracing.enabled: true\n tracing.jaeger.resources.limits.cpu: 500m\n tracing.jaeger.resources.limits.memory: 1024Mi\n tracing.jaeger.resources.requests.cpu: 100m\n tracing.jaeger.resources.requests.memory: 100Mi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Rancher v2 RKE cluster assigning a node pool (overlapped planes)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\n// Create a new rancher2 RKE Cluster\nconst foo_custom = new rancher2.Cluster(\"foo-custom\", {\n name: \"foo-custom\",\n description: \"Foo rancher2 custom cluster\",\n rkeConfig: {\n network: {\n plugin: \"canal\",\n },\n },\n});\n// Create a new rancher2 Node Template\nconst foo = new rancher2.NodeTemplate(\"foo\", {\n name: \"foo\",\n description: \"foo test\",\n amazonec2Config: {\n accessKey: \"\u003cAWS_ACCESS_KEY\u003e\",\n secretKey: \"\u003cAWS_SECRET_KEY\u003e\",\n ami: \"\u003cAMI_ID\u003e\",\n region: \"\u003cREGION\u003e\",\n securityGroups: [\"\u003cAWS_SECURITY_GROUP\u003e\"],\n subnetId: \"\u003cSUBNET_ID\u003e\",\n vpcId: \"\u003cVPC_ID\u003e\",\n zone: \"\u003cZONE\u003e\",\n },\n});\n// Create a new rancher2 Node Pool\nconst fooNodePool = new rancher2.NodePool(\"foo\", {\n clusterId: foo_custom.id,\n name: \"foo\",\n hostnamePrefix: \"foo-cluster-0\",\n nodeTemplateId: foo.id,\n quantity: 3,\n controlPlane: true,\n etcd: true,\n worker: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\n# Create a new rancher2 RKE Cluster\nfoo_custom = rancher2.Cluster(\"foo-custom\",\n name=\"foo-custom\",\n description=\"Foo rancher2 custom cluster\",\n rke_config=rancher2.ClusterRkeConfigArgs(\n network=rancher2.ClusterRkeConfigNetworkArgs(\n plugin=\"canal\",\n ),\n ))\n# Create a new rancher2 Node Template\nfoo = rancher2.NodeTemplate(\"foo\",\n name=\"foo\",\n description=\"foo test\",\n amazonec2_config=rancher2.NodeTemplateAmazonec2ConfigArgs(\n access_key=\"\u003cAWS_ACCESS_KEY\u003e\",\n secret_key=\"\u003cAWS_SECRET_KEY\u003e\",\n ami=\"\u003cAMI_ID\u003e\",\n region=\"\u003cREGION\u003e\",\n security_groups=[\"\u003cAWS_SECURITY_GROUP\u003e\"],\n subnet_id=\"\u003cSUBNET_ID\u003e\",\n vpc_id=\"\u003cVPC_ID\u003e\",\n zone=\"\u003cZONE\u003e\",\n ))\n# Create a new rancher2 Node Pool\nfoo_node_pool = rancher2.NodePool(\"foo\",\n cluster_id=foo_custom.id,\n name=\"foo\",\n hostname_prefix=\"foo-cluster-0\",\n node_template_id=foo.id,\n quantity=3,\n control_plane=True,\n etcd=True,\n worker=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Create a new rancher2 RKE Cluster\n var foo_custom = new Rancher2.Cluster(\"foo-custom\", new()\n {\n Name = \"foo-custom\",\n Description = \"Foo rancher2 custom cluster\",\n RkeConfig = new Rancher2.Inputs.ClusterRkeConfigArgs\n {\n Network = new Rancher2.Inputs.ClusterRkeConfigNetworkArgs\n {\n Plugin = \"canal\",\n },\n },\n });\n\n // Create a new rancher2 Node Template\n var foo = new Rancher2.NodeTemplate(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"foo test\",\n Amazonec2Config = new Rancher2.Inputs.NodeTemplateAmazonec2ConfigArgs\n {\n AccessKey = \"\u003cAWS_ACCESS_KEY\u003e\",\n SecretKey = \"\u003cAWS_SECRET_KEY\u003e\",\n Ami = \"\u003cAMI_ID\u003e\",\n Region = \"\u003cREGION\u003e\",\n SecurityGroups = new[]\n {\n \"\u003cAWS_SECURITY_GROUP\u003e\",\n },\n SubnetId = \"\u003cSUBNET_ID\u003e\",\n VpcId = \"\u003cVPC_ID\u003e\",\n Zone = \"\u003cZONE\u003e\",\n },\n });\n\n // Create a new rancher2 Node Pool\n var fooNodePool = new Rancher2.NodePool(\"foo\", new()\n {\n ClusterId = foo_custom.Id,\n Name = \"foo\",\n HostnamePrefix = \"foo-cluster-0\",\n NodeTemplateId = foo.Id,\n Quantity = 3,\n ControlPlane = true,\n Etcd = true,\n Worker = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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// Create a new rancher2 RKE Cluster\n\t\t_, err := rancher2.NewCluster(ctx, \"foo-custom\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo-custom\"),\n\t\t\tDescription: pulumi.String(\"Foo rancher2 custom cluster\"),\n\t\t\tRkeConfig: \u0026rancher2.ClusterRkeConfigArgs{\n\t\t\t\tNetwork: \u0026rancher2.ClusterRkeConfigNetworkArgs{\n\t\t\t\t\tPlugin: pulumi.String(\"canal\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new rancher2 Node Template\n\t\tfoo, err := rancher2.NewNodeTemplate(ctx, \"foo\", \u0026rancher2.NodeTemplateArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"foo test\"),\n\t\t\tAmazonec2Config: \u0026rancher2.NodeTemplateAmazonec2ConfigArgs{\n\t\t\t\tAccessKey: pulumi.String(\"\u003cAWS_ACCESS_KEY\u003e\"),\n\t\t\t\tSecretKey: pulumi.String(\"\u003cAWS_SECRET_KEY\u003e\"),\n\t\t\t\tAmi: pulumi.String(\"\u003cAMI_ID\u003e\"),\n\t\t\t\tRegion: pulumi.String(\"\u003cREGION\u003e\"),\n\t\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"\u003cAWS_SECURITY_GROUP\u003e\"),\n\t\t\t\t},\n\t\t\t\tSubnetId: pulumi.String(\"\u003cSUBNET_ID\u003e\"),\n\t\t\t\tVpcId: pulumi.String(\"\u003cVPC_ID\u003e\"),\n\t\t\t\tZone: pulumi.String(\"\u003cZONE\u003e\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new rancher2 Node Pool\n\t\t_, err = rancher2.NewNodePool(ctx, \"foo\", \u0026rancher2.NodePoolArgs{\n\t\t\tClusterId: foo_custom.ID(),\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tHostnamePrefix: pulumi.String(\"foo-cluster-0\"),\n\t\t\tNodeTemplateId: foo.ID(),\n\t\t\tQuantity: pulumi.Int(3),\n\t\t\tControlPlane: pulumi.Bool(true),\n\t\t\tEtcd: pulumi.Bool(true),\n\t\t\tWorker: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigNetworkArgs;\nimport com.pulumi.rancher2.NodeTemplate;\nimport com.pulumi.rancher2.NodeTemplateArgs;\nimport com.pulumi.rancher2.inputs.NodeTemplateAmazonec2ConfigArgs;\nimport com.pulumi.rancher2.NodePool;\nimport com.pulumi.rancher2.NodePoolArgs;\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 // Create a new rancher2 RKE Cluster\n var foo_custom = new Cluster(\"foo-custom\", ClusterArgs.builder()\n .name(\"foo-custom\")\n .description(\"Foo rancher2 custom cluster\")\n .rkeConfig(ClusterRkeConfigArgs.builder()\n .network(ClusterRkeConfigNetworkArgs.builder()\n .plugin(\"canal\")\n .build())\n .build())\n .build());\n\n // Create a new rancher2 Node Template\n var foo = new NodeTemplate(\"foo\", NodeTemplateArgs.builder()\n .name(\"foo\")\n .description(\"foo test\")\n .amazonec2Config(NodeTemplateAmazonec2ConfigArgs.builder()\n .accessKey(\"\u003cAWS_ACCESS_KEY\u003e\")\n .secretKey(\"\u003cAWS_SECRET_KEY\u003e\")\n .ami(\"\u003cAMI_ID\u003e\")\n .region(\"\u003cREGION\u003e\")\n .securityGroups(\"\u003cAWS_SECURITY_GROUP\u003e\")\n .subnetId(\"\u003cSUBNET_ID\u003e\")\n .vpcId(\"\u003cVPC_ID\u003e\")\n .zone(\"\u003cZONE\u003e\")\n .build())\n .build());\n\n // Create a new rancher2 Node Pool\n var fooNodePool = new NodePool(\"fooNodePool\", NodePoolArgs.builder()\n .clusterId(foo_custom.id())\n .name(\"foo\")\n .hostnamePrefix(\"foo-cluster-0\")\n .nodeTemplateId(foo.id())\n .quantity(3)\n .controlPlane(true)\n .etcd(true)\n .worker(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Create a new rancher2 RKE Cluster\n foo-custom:\n type: rancher2:Cluster\n properties:\n name: foo-custom\n description: Foo rancher2 custom cluster\n rkeConfig:\n network:\n plugin: canal\n # Create a new rancher2 Node Template\n foo:\n type: rancher2:NodeTemplate\n properties:\n name: foo\n description: foo test\n amazonec2Config:\n accessKey: \u003cAWS_ACCESS_KEY\u003e\n secretKey: \u003cAWS_SECRET_KEY\u003e\n ami: \u003cAMI_ID\u003e\n region: \u003cREGION\u003e\n securityGroups:\n - \u003cAWS_SECURITY_GROUP\u003e\n subnetId: \u003cSUBNET_ID\u003e\n vpcId: \u003cVPC_ID\u003e\n zone: \u003cZONE\u003e\n # Create a new rancher2 Node Pool\n fooNodePool:\n type: rancher2:NodePool\n name: foo\n properties:\n clusterId: ${[\"foo-custom\"].id}\n name: foo\n hostnamePrefix: foo-cluster-0\n nodeTemplateId: ${foo.id}\n quantity: 3\n controlPlane: true\n etcd: true\n worker: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Rancher v2 RKE cluster from template. For Rancher v2.3.x and above.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\n// Create a new rancher2 cluster template\nconst foo = new rancher2.ClusterTemplate(\"foo\", {\n name: \"foo\",\n members: [{\n accessType: \"owner\",\n userPrincipalId: \"local://user-XXXXX\",\n }],\n templateRevisions: [{\n name: \"V1\",\n clusterConfig: {\n rkeConfig: {\n network: {\n plugin: \"canal\",\n },\n services: {\n etcd: {\n creation: \"6h\",\n retention: \"24h\",\n },\n },\n },\n },\n \"default\": true,\n }],\n description: \"Test cluster template v2\",\n});\n// Create a new rancher2 RKE Cluster from template\nconst fooCluster = new rancher2.Cluster(\"foo\", {\n name: \"foo\",\n clusterTemplateId: foo.id,\n clusterTemplateRevisionId: foo.templateRevisions.apply(templateRevisions =\u003e templateRevisions[0].id),\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\n# Create a new rancher2 cluster template\nfoo = rancher2.ClusterTemplate(\"foo\",\n name=\"foo\",\n members=[rancher2.ClusterTemplateMemberArgs(\n access_type=\"owner\",\n user_principal_id=\"local://user-XXXXX\",\n )],\n template_revisions=[rancher2.ClusterTemplateTemplateRevisionArgs(\n name=\"V1\",\n cluster_config=rancher2.ClusterTemplateTemplateRevisionClusterConfigArgs(\n rke_config=rancher2.ClusterTemplateTemplateRevisionClusterConfigRkeConfigArgs(\n network=rancher2.ClusterTemplateTemplateRevisionClusterConfigRkeConfigNetworkArgs(\n plugin=\"canal\",\n ),\n services=rancher2.ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesArgs(\n etcd=rancher2.ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesEtcdArgs(\n creation=\"6h\",\n retention=\"24h\",\n ),\n ),\n ),\n ),\n default=True,\n )],\n description=\"Test cluster template v2\")\n# Create a new rancher2 RKE Cluster from template\nfoo_cluster = rancher2.Cluster(\"foo\",\n name=\"foo\",\n cluster_template_id=foo.id,\n cluster_template_revision_id=foo.template_revisions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Create a new rancher2 cluster template\n var foo = new Rancher2.ClusterTemplate(\"foo\", new()\n {\n Name = \"foo\",\n Members = new[]\n {\n new Rancher2.Inputs.ClusterTemplateMemberArgs\n {\n AccessType = \"owner\",\n UserPrincipalId = \"local://user-XXXXX\",\n },\n },\n TemplateRevisions = new[]\n {\n new Rancher2.Inputs.ClusterTemplateTemplateRevisionArgs\n {\n Name = \"V1\",\n ClusterConfig = new Rancher2.Inputs.ClusterTemplateTemplateRevisionClusterConfigArgs\n {\n RkeConfig = new Rancher2.Inputs.ClusterTemplateTemplateRevisionClusterConfigRkeConfigArgs\n {\n Network = new Rancher2.Inputs.ClusterTemplateTemplateRevisionClusterConfigRkeConfigNetworkArgs\n {\n Plugin = \"canal\",\n },\n Services = new Rancher2.Inputs.ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesArgs\n {\n Etcd = new Rancher2.Inputs.ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesEtcdArgs\n {\n Creation = \"6h\",\n Retention = \"24h\",\n },\n },\n },\n },\n Default = true,\n },\n },\n Description = \"Test cluster template v2\",\n });\n\n // Create a new rancher2 RKE Cluster from template\n var fooCluster = new Rancher2.Cluster(\"foo\", new()\n {\n Name = \"foo\",\n ClusterTemplateId = foo.Id,\n ClusterTemplateRevisionId = foo.TemplateRevisions.Apply(templateRevisions =\u003e templateRevisions[0].Id),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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// Create a new rancher2 cluster template\n\t\tfoo, err := rancher2.NewClusterTemplate(ctx, \"foo\", \u0026rancher2.ClusterTemplateArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tMembers: rancher2.ClusterTemplateMemberArray{\n\t\t\t\t\u0026rancher2.ClusterTemplateMemberArgs{\n\t\t\t\t\tAccessType: pulumi.String(\"owner\"),\n\t\t\t\t\tUserPrincipalId: pulumi.String(\"local://user-XXXXX\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTemplateRevisions: rancher2.ClusterTemplateTemplateRevisionArray{\n\t\t\t\t\u0026rancher2.ClusterTemplateTemplateRevisionArgs{\n\t\t\t\t\tName: pulumi.String(\"V1\"),\n\t\t\t\t\tClusterConfig: \u0026rancher2.ClusterTemplateTemplateRevisionClusterConfigArgs{\n\t\t\t\t\t\tRkeConfig: \u0026rancher2.ClusterTemplateTemplateRevisionClusterConfigRkeConfigArgs{\n\t\t\t\t\t\t\tNetwork: \u0026rancher2.ClusterTemplateTemplateRevisionClusterConfigRkeConfigNetworkArgs{\n\t\t\t\t\t\t\t\tPlugin: pulumi.String(\"canal\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tServices: \u0026rancher2.ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesArgs{\n\t\t\t\t\t\t\t\tEtcd: \u0026rancher2.ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesEtcdArgs{\n\t\t\t\t\t\t\t\t\tCreation: pulumi.String(\"6h\"),\n\t\t\t\t\t\t\t\t\tRetention: pulumi.String(\"24h\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tDefault: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"Test cluster template v2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new rancher2 RKE Cluster from template\n\t\t_, err = rancher2.NewCluster(ctx, \"foo\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tClusterTemplateId: foo.ID(),\n\t\t\tClusterTemplateRevisionId: foo.TemplateRevisions.ApplyT(func(templateRevisions []rancher2.ClusterTemplateTemplateRevision) (*string, error) {\n\t\t\t\treturn \u0026templateRevisions[0].Id, nil\n\t\t\t}).(pulumi.StringPtrOutput),\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.rancher2.ClusterTemplate;\nimport com.pulumi.rancher2.ClusterTemplateArgs;\nimport com.pulumi.rancher2.inputs.ClusterTemplateMemberArgs;\nimport com.pulumi.rancher2.inputs.ClusterTemplateTemplateRevisionArgs;\nimport com.pulumi.rancher2.inputs.ClusterTemplateTemplateRevisionClusterConfigArgs;\nimport com.pulumi.rancher2.inputs.ClusterTemplateTemplateRevisionClusterConfigRkeConfigArgs;\nimport com.pulumi.rancher2.inputs.ClusterTemplateTemplateRevisionClusterConfigRkeConfigNetworkArgs;\nimport com.pulumi.rancher2.inputs.ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesArgs;\nimport com.pulumi.rancher2.inputs.ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesEtcdArgs;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\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 // Create a new rancher2 cluster template\n var foo = new ClusterTemplate(\"foo\", ClusterTemplateArgs.builder()\n .name(\"foo\")\n .members(ClusterTemplateMemberArgs.builder()\n .accessType(\"owner\")\n .userPrincipalId(\"local://user-XXXXX\")\n .build())\n .templateRevisions(ClusterTemplateTemplateRevisionArgs.builder()\n .name(\"V1\")\n .clusterConfig(ClusterTemplateTemplateRevisionClusterConfigArgs.builder()\n .rkeConfig(ClusterTemplateTemplateRevisionClusterConfigRkeConfigArgs.builder()\n .network(ClusterTemplateTemplateRevisionClusterConfigRkeConfigNetworkArgs.builder()\n .plugin(\"canal\")\n .build())\n .services(ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesArgs.builder()\n .etcd(ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesEtcdArgs.builder()\n .creation(\"6h\")\n .retention(\"24h\")\n .build())\n .build())\n .build())\n .build())\n .default_(true)\n .build())\n .description(\"Test cluster template v2\")\n .build());\n\n // Create a new rancher2 RKE Cluster from template\n var fooCluster = new Cluster(\"fooCluster\", ClusterArgs.builder()\n .name(\"foo\")\n .clusterTemplateId(foo.id())\n .clusterTemplateRevisionId(foo.templateRevisions().applyValue(templateRevisions -\u003e templateRevisions[0].id()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Create a new rancher2 cluster template\n foo:\n type: rancher2:ClusterTemplate\n properties:\n name: foo\n members:\n - accessType: owner\n userPrincipalId: local://user-XXXXX\n templateRevisions:\n - name: V1\n clusterConfig:\n rkeConfig:\n network:\n plugin: canal\n services:\n etcd:\n creation: 6h\n retention: 24h\n default: true\n description: Test cluster template v2\n # Create a new rancher2 RKE Cluster from template\n fooCluster:\n type: rancher2:Cluster\n name: foo\n properties:\n name: foo\n clusterTemplateId: ${foo.id}\n clusterTemplateRevisionId: ${foo.templateRevisions[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Rancher v2 RKE cluster with upgrade strategy. For Rancher v2.4.x and above.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\nconst foo = new rancher2.Cluster(\"foo\", {\n name: \"foo\",\n description: \"Terraform custom cluster\",\n rkeConfig: {\n network: {\n plugin: \"canal\",\n },\n services: {\n etcd: {\n creation: \"6h\",\n retention: \"24h\",\n },\n kubeApi: {\n auditLog: {\n enabled: true,\n configuration: {\n maxAge: 5,\n maxBackup: 5,\n maxSize: 100,\n path: \"-\",\n format: \"json\",\n policy: `apiVersion: audit.k8s.io/v1\nkind: Policy\nmetadata:\n creationTimestamp: null\nomitStages:\n- RequestReceived\nrules:\n- level: RequestResponse\n resources:\n - resources:\n - pods\n`,\n },\n },\n },\n },\n upgradeStrategy: {\n drain: true,\n maxUnavailableWorker: \"20%\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\nfoo = rancher2.Cluster(\"foo\",\n name=\"foo\",\n description=\"Terraform custom cluster\",\n rke_config=rancher2.ClusterRkeConfigArgs(\n network=rancher2.ClusterRkeConfigNetworkArgs(\n plugin=\"canal\",\n ),\n services=rancher2.ClusterRkeConfigServicesArgs(\n etcd=rancher2.ClusterRkeConfigServicesEtcdArgs(\n creation=\"6h\",\n retention=\"24h\",\n ),\n kube_api=rancher2.ClusterRkeConfigServicesKubeApiArgs(\n audit_log=rancher2.ClusterRkeConfigServicesKubeApiAuditLogArgs(\n enabled=True,\n configuration=rancher2.ClusterRkeConfigServicesKubeApiAuditLogConfigurationArgs(\n max_age=5,\n max_backup=5,\n max_size=100,\n path=\"-\",\n format=\"json\",\n policy=\"\"\"apiVersion: audit.k8s.io/v1\nkind: Policy\nmetadata:\n creationTimestamp: null\nomitStages:\n- RequestReceived\nrules:\n- level: RequestResponse\n resources:\n - resources:\n - pods\n\"\"\",\n ),\n ),\n ),\n ),\n upgrade_strategy=rancher2.ClusterRkeConfigUpgradeStrategyArgs(\n drain=True,\n max_unavailable_worker=\"20%\",\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Rancher2.Cluster(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"Terraform custom cluster\",\n RkeConfig = new Rancher2.Inputs.ClusterRkeConfigArgs\n {\n Network = new Rancher2.Inputs.ClusterRkeConfigNetworkArgs\n {\n Plugin = \"canal\",\n },\n Services = new Rancher2.Inputs.ClusterRkeConfigServicesArgs\n {\n Etcd = new Rancher2.Inputs.ClusterRkeConfigServicesEtcdArgs\n {\n Creation = \"6h\",\n Retention = \"24h\",\n },\n KubeApi = new Rancher2.Inputs.ClusterRkeConfigServicesKubeApiArgs\n {\n AuditLog = new Rancher2.Inputs.ClusterRkeConfigServicesKubeApiAuditLogArgs\n {\n Enabled = true,\n Configuration = new Rancher2.Inputs.ClusterRkeConfigServicesKubeApiAuditLogConfigurationArgs\n {\n MaxAge = 5,\n MaxBackup = 5,\n MaxSize = 100,\n Path = \"-\",\n Format = \"json\",\n Policy = @\"apiVersion: audit.k8s.io/v1\nkind: Policy\nmetadata:\n creationTimestamp: null\nomitStages:\n- RequestReceived\nrules:\n- level: RequestResponse\n resources:\n - resources:\n - pods\n\",\n },\n },\n },\n },\n UpgradeStrategy = new Rancher2.Inputs.ClusterRkeConfigUpgradeStrategyArgs\n {\n Drain = true,\n MaxUnavailableWorker = \"20%\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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 := rancher2.NewCluster(ctx, \"foo\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"Terraform custom cluster\"),\n\t\t\tRkeConfig: \u0026rancher2.ClusterRkeConfigArgs{\n\t\t\t\tNetwork: \u0026rancher2.ClusterRkeConfigNetworkArgs{\n\t\t\t\t\tPlugin: pulumi.String(\"canal\"),\n\t\t\t\t},\n\t\t\t\tServices: \u0026rancher2.ClusterRkeConfigServicesArgs{\n\t\t\t\t\tEtcd: \u0026rancher2.ClusterRkeConfigServicesEtcdArgs{\n\t\t\t\t\t\tCreation: pulumi.String(\"6h\"),\n\t\t\t\t\t\tRetention: pulumi.String(\"24h\"),\n\t\t\t\t\t},\n\t\t\t\t\tKubeApi: \u0026rancher2.ClusterRkeConfigServicesKubeApiArgs{\n\t\t\t\t\t\tAuditLog: \u0026rancher2.ClusterRkeConfigServicesKubeApiAuditLogArgs{\n\t\t\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\t\t\tConfiguration: \u0026rancher2.ClusterRkeConfigServicesKubeApiAuditLogConfigurationArgs{\n\t\t\t\t\t\t\t\tMaxAge: pulumi.Int(5),\n\t\t\t\t\t\t\t\tMaxBackup: pulumi.Int(5),\n\t\t\t\t\t\t\t\tMaxSize: pulumi.Int(100),\n\t\t\t\t\t\t\t\tPath: pulumi.String(\"-\"),\n\t\t\t\t\t\t\t\tFormat: pulumi.String(\"json\"),\n\t\t\t\t\t\t\t\tPolicy: pulumi.String(`apiVersion: audit.k8s.io/v1\nkind: Policy\nmetadata:\n creationTimestamp: null\nomitStages:\n- RequestReceived\nrules:\n- level: RequestResponse\n resources:\n - resources:\n - pods\n`),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tUpgradeStrategy: \u0026rancher2.ClusterRkeConfigUpgradeStrategyArgs{\n\t\t\t\t\tDrain: pulumi.Bool(true),\n\t\t\t\t\tMaxUnavailableWorker: pulumi.String(\"20%\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigNetworkArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigServicesArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigServicesEtcdArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigServicesKubeApiArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigServicesKubeApiAuditLogArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigServicesKubeApiAuditLogConfigurationArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigUpgradeStrategyArgs;\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 foo = new Cluster(\"foo\", ClusterArgs.builder()\n .name(\"foo\")\n .description(\"Terraform custom cluster\")\n .rkeConfig(ClusterRkeConfigArgs.builder()\n .network(ClusterRkeConfigNetworkArgs.builder()\n .plugin(\"canal\")\n .build())\n .services(ClusterRkeConfigServicesArgs.builder()\n .etcd(ClusterRkeConfigServicesEtcdArgs.builder()\n .creation(\"6h\")\n .retention(\"24h\")\n .build())\n .kubeApi(ClusterRkeConfigServicesKubeApiArgs.builder()\n .auditLog(ClusterRkeConfigServicesKubeApiAuditLogArgs.builder()\n .enabled(true)\n .configuration(ClusterRkeConfigServicesKubeApiAuditLogConfigurationArgs.builder()\n .maxAge(5)\n .maxBackup(5)\n .maxSize(100)\n .path(\"-\")\n .format(\"json\")\n .policy(\"\"\"\napiVersion: audit.k8s.io/v1\nkind: Policy\nmetadata:\n creationTimestamp: null\nomitStages:\n- RequestReceived\nrules:\n- level: RequestResponse\n resources:\n - resources:\n - pods\n \"\"\")\n .build())\n .build())\n .build())\n .build())\n .upgradeStrategy(ClusterRkeConfigUpgradeStrategyArgs.builder()\n .drain(true)\n .maxUnavailableWorker(\"20%\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: rancher2:Cluster\n properties:\n name: foo\n description: Terraform custom cluster\n rkeConfig:\n network:\n plugin: canal\n services:\n etcd:\n creation: 6h\n retention: 24h\n kubeApi:\n auditLog:\n enabled: true\n configuration:\n maxAge: 5\n maxBackup: 5\n maxSize: 100\n path: '-'\n format: json\n policy: |\n apiVersion: audit.k8s.io/v1\n kind: Policy\n metadata:\n creationTimestamp: null\n omitStages:\n - RequestReceived\n rules:\n - level: RequestResponse\n resources:\n - resources:\n - pods\n upgradeStrategy:\n drain: true\n maxUnavailableWorker: 20%\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Rancher v2 RKE cluster with cluster agent customization. For Rancher v2.7.5 and above.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\nconst foo = new rancher2.Cluster(\"foo\", {\n name: \"foo\",\n description: \"Terraform cluster with agent customization\",\n rkeConfig: {\n network: {\n plugin: \"canal\",\n },\n },\n clusterAgentDeploymentCustomizations: [{\n appendTolerations: [{\n effect: \"NoSchedule\",\n key: \"tolerate/control-plane\",\n value: \"true\",\n }],\n overrideAffinity: `{\n \"nodeAffinity\": {\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"nodeSelectorTerms\": [{\n \"matchExpressions\": [{\n \"key\": \"not.this/nodepool\",\n \"operator\": \"In\",\n \"values\": [\n \"true\"\n ]\n }]\n }]\n }\n }\n}\n`,\n overrideResourceRequirements: [{\n cpuLimit: \"800\",\n cpuRequest: \"500\",\n memoryLimit: \"800\",\n memoryRequest: \"500\",\n }],\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\nfoo = rancher2.Cluster(\"foo\",\n name=\"foo\",\n description=\"Terraform cluster with agent customization\",\n rke_config=rancher2.ClusterRkeConfigArgs(\n network=rancher2.ClusterRkeConfigNetworkArgs(\n plugin=\"canal\",\n ),\n ),\n cluster_agent_deployment_customizations=[rancher2.ClusterClusterAgentDeploymentCustomizationArgs(\n append_tolerations=[rancher2.ClusterClusterAgentDeploymentCustomizationAppendTolerationArgs(\n effect=\"NoSchedule\",\n key=\"tolerate/control-plane\",\n value=\"true\",\n )],\n override_affinity=\"\"\"{\n \"nodeAffinity\": {\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"nodeSelectorTerms\": [{\n \"matchExpressions\": [{\n \"key\": \"not.this/nodepool\",\n \"operator\": \"In\",\n \"values\": [\n \"true\"\n ]\n }]\n }]\n }\n }\n}\n\"\"\",\n override_resource_requirements=[rancher2.ClusterClusterAgentDeploymentCustomizationOverrideResourceRequirementArgs(\n cpu_limit=\"800\",\n cpu_request=\"500\",\n memory_limit=\"800\",\n memory_request=\"500\",\n )],\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Rancher2.Cluster(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"Terraform cluster with agent customization\",\n RkeConfig = new Rancher2.Inputs.ClusterRkeConfigArgs\n {\n Network = new Rancher2.Inputs.ClusterRkeConfigNetworkArgs\n {\n Plugin = \"canal\",\n },\n },\n ClusterAgentDeploymentCustomizations = new[]\n {\n new Rancher2.Inputs.ClusterClusterAgentDeploymentCustomizationArgs\n {\n AppendTolerations = new[]\n {\n new Rancher2.Inputs.ClusterClusterAgentDeploymentCustomizationAppendTolerationArgs\n {\n Effect = \"NoSchedule\",\n Key = \"tolerate/control-plane\",\n Value = \"true\",\n },\n },\n OverrideAffinity = @\"{\n \"\"nodeAffinity\"\": {\n \"\"requiredDuringSchedulingIgnoredDuringExecution\"\": {\n \"\"nodeSelectorTerms\"\": [{\n \"\"matchExpressions\"\": [{\n \"\"key\"\": \"\"not.this/nodepool\"\",\n \"\"operator\"\": \"\"In\"\",\n \"\"values\"\": [\n \"\"true\"\"\n ]\n }]\n }]\n }\n }\n}\n\",\n OverrideResourceRequirements = new[]\n {\n new Rancher2.Inputs.ClusterClusterAgentDeploymentCustomizationOverrideResourceRequirementArgs\n {\n CpuLimit = \"800\",\n CpuRequest = \"500\",\n MemoryLimit = \"800\",\n MemoryRequest = \"500\",\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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 := rancher2.NewCluster(ctx, \"foo\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"Terraform cluster with agent customization\"),\n\t\t\tRkeConfig: \u0026rancher2.ClusterRkeConfigArgs{\n\t\t\t\tNetwork: \u0026rancher2.ClusterRkeConfigNetworkArgs{\n\t\t\t\t\tPlugin: pulumi.String(\"canal\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tClusterAgentDeploymentCustomizations: rancher2.ClusterClusterAgentDeploymentCustomizationArray{\n\t\t\t\t\u0026rancher2.ClusterClusterAgentDeploymentCustomizationArgs{\n\t\t\t\t\tAppendTolerations: rancher2.ClusterClusterAgentDeploymentCustomizationAppendTolerationArray{\n\t\t\t\t\t\t\u0026rancher2.ClusterClusterAgentDeploymentCustomizationAppendTolerationArgs{\n\t\t\t\t\t\t\tEffect: pulumi.String(\"NoSchedule\"),\n\t\t\t\t\t\t\tKey: pulumi.String(\"tolerate/control-plane\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"true\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tOverrideAffinity: pulumi.String(`{\n \"nodeAffinity\": {\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"nodeSelectorTerms\": [{\n \"matchExpressions\": [{\n \"key\": \"not.this/nodepool\",\n \"operator\": \"In\",\n \"values\": [\n \"true\"\n ]\n }]\n }]\n }\n }\n}\n`),\n\t\t\t\t\tOverrideResourceRequirements: rancher2.ClusterClusterAgentDeploymentCustomizationOverrideResourceRequirementArray{\n\t\t\t\t\t\t\u0026rancher2.ClusterClusterAgentDeploymentCustomizationOverrideResourceRequirementArgs{\n\t\t\t\t\t\t\tCpuLimit: pulumi.String(\"800\"),\n\t\t\t\t\t\t\tCpuRequest: pulumi.String(\"500\"),\n\t\t\t\t\t\t\tMemoryLimit: pulumi.String(\"800\"),\n\t\t\t\t\t\t\tMemoryRequest: pulumi.String(\"500\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigNetworkArgs;\nimport com.pulumi.rancher2.inputs.ClusterClusterAgentDeploymentCustomizationArgs;\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 foo = new Cluster(\"foo\", ClusterArgs.builder()\n .name(\"foo\")\n .description(\"Terraform cluster with agent customization\")\n .rkeConfig(ClusterRkeConfigArgs.builder()\n .network(ClusterRkeConfigNetworkArgs.builder()\n .plugin(\"canal\")\n .build())\n .build())\n .clusterAgentDeploymentCustomizations(ClusterClusterAgentDeploymentCustomizationArgs.builder()\n .appendTolerations(ClusterClusterAgentDeploymentCustomizationAppendTolerationArgs.builder()\n .effect(\"NoSchedule\")\n .key(\"tolerate/control-plane\")\n .value(\"true\")\n .build())\n .overrideAffinity(\"\"\"\n{\n \"nodeAffinity\": {\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"nodeSelectorTerms\": [{\n \"matchExpressions\": [{\n \"key\": \"not.this/nodepool\",\n \"operator\": \"In\",\n \"values\": [\n \"true\"\n ]\n }]\n }]\n }\n }\n}\n \"\"\")\n .overrideResourceRequirements(ClusterClusterAgentDeploymentCustomizationOverrideResourceRequirementArgs.builder()\n .cpuLimit(\"800\")\n .cpuRequest(\"500\")\n .memoryLimit(\"800\")\n .memoryRequest(\"500\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: rancher2:Cluster\n properties:\n name: foo\n description: Terraform cluster with agent customization\n rkeConfig:\n network:\n plugin: canal\n clusterAgentDeploymentCustomizations:\n - appendTolerations:\n - effect: NoSchedule\n key: tolerate/control-plane\n value: 'true'\n overrideAffinity: |\n {\n \"nodeAffinity\": {\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"nodeSelectorTerms\": [{\n \"matchExpressions\": [{\n \"key\": \"not.this/nodepool\",\n \"operator\": \"In\",\n \"values\": [\n \"true\"\n ]\n }]\n }]\n }\n }\n }\n overrideResourceRequirements:\n - cpuLimit: '800'\n cpuRequest: '500'\n memoryLimit: '800'\n memoryRequest: '500'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Rancher v2 RKE cluster with Pod Security Admission Configuration Template (PSACT). For Rancher v2.7.2 and above.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\n// Custom PSACT (if you wish to use your own)\nconst foo = new rancher2.PodSecurityAdmissionConfigurationTemplate(\"foo\", {\n name: \"custom-psact\",\n description: \"This is my custom Pod Security Admission Configuration Template\",\n defaults: {\n audit: \"restricted\",\n auditVersion: \"latest\",\n enforce: \"restricted\",\n enforceVersion: \"latest\",\n warn: \"restricted\",\n warnVersion: \"latest\",\n },\n exemptions: {\n usernames: [\"testuser\"],\n runtimeClasses: [\"testclass\"],\n namespaces: [\n \"ingress-nginx\",\n \"kube-system\",\n ],\n },\n});\nconst fooCluster = new rancher2.Cluster(\"foo\", {\n name: \"foo\",\n description: \"Terraform cluster with PSACT\",\n defaultPodSecurityAdmissionConfigurationTemplateName: \"\u003cname\u003e\",\n rkeConfig: {\n network: {\n plugin: \"canal\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\n# Custom PSACT (if you wish to use your own)\nfoo = rancher2.PodSecurityAdmissionConfigurationTemplate(\"foo\",\n name=\"custom-psact\",\n description=\"This is my custom Pod Security Admission Configuration Template\",\n defaults=rancher2.PodSecurityAdmissionConfigurationTemplateDefaultsArgs(\n audit=\"restricted\",\n audit_version=\"latest\",\n enforce=\"restricted\",\n enforce_version=\"latest\",\n warn=\"restricted\",\n warn_version=\"latest\",\n ),\n exemptions=rancher2.PodSecurityAdmissionConfigurationTemplateExemptionsArgs(\n usernames=[\"testuser\"],\n runtime_classes=[\"testclass\"],\n namespaces=[\n \"ingress-nginx\",\n \"kube-system\",\n ],\n ))\nfoo_cluster = rancher2.Cluster(\"foo\",\n name=\"foo\",\n description=\"Terraform cluster with PSACT\",\n default_pod_security_admission_configuration_template_name=\"\u003cname\u003e\",\n rke_config=rancher2.ClusterRkeConfigArgs(\n network=rancher2.ClusterRkeConfigNetworkArgs(\n plugin=\"canal\",\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Custom PSACT (if you wish to use your own)\n var foo = new Rancher2.PodSecurityAdmissionConfigurationTemplate(\"foo\", new()\n {\n Name = \"custom-psact\",\n Description = \"This is my custom Pod Security Admission Configuration Template\",\n Defaults = new Rancher2.Inputs.PodSecurityAdmissionConfigurationTemplateDefaultsArgs\n {\n Audit = \"restricted\",\n AuditVersion = \"latest\",\n Enforce = \"restricted\",\n EnforceVersion = \"latest\",\n Warn = \"restricted\",\n WarnVersion = \"latest\",\n },\n Exemptions = new Rancher2.Inputs.PodSecurityAdmissionConfigurationTemplateExemptionsArgs\n {\n Usernames = new[]\n {\n \"testuser\",\n },\n RuntimeClasses = new[]\n {\n \"testclass\",\n },\n Namespaces = new[]\n {\n \"ingress-nginx\",\n \"kube-system\",\n },\n },\n });\n\n var fooCluster = new Rancher2.Cluster(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"Terraform cluster with PSACT\",\n DefaultPodSecurityAdmissionConfigurationTemplateName = \"\u003cname\u003e\",\n RkeConfig = new Rancher2.Inputs.ClusterRkeConfigArgs\n {\n Network = new Rancher2.Inputs.ClusterRkeConfigNetworkArgs\n {\n Plugin = \"canal\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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// Custom PSACT (if you wish to use your own)\n\t\t_, err := rancher2.NewPodSecurityAdmissionConfigurationTemplate(ctx, \"foo\", \u0026rancher2.PodSecurityAdmissionConfigurationTemplateArgs{\n\t\t\tName: pulumi.String(\"custom-psact\"),\n\t\t\tDescription: pulumi.String(\"This is my custom Pod Security Admission Configuration Template\"),\n\t\t\tDefaults: \u0026rancher2.PodSecurityAdmissionConfigurationTemplateDefaultsArgs{\n\t\t\t\tAudit: pulumi.String(\"restricted\"),\n\t\t\t\tAuditVersion: pulumi.String(\"latest\"),\n\t\t\t\tEnforce: pulumi.String(\"restricted\"),\n\t\t\t\tEnforceVersion: pulumi.String(\"latest\"),\n\t\t\t\tWarn: pulumi.String(\"restricted\"),\n\t\t\t\tWarnVersion: pulumi.String(\"latest\"),\n\t\t\t},\n\t\t\tExemptions: \u0026rancher2.PodSecurityAdmissionConfigurationTemplateExemptionsArgs{\n\t\t\t\tUsernames: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"testuser\"),\n\t\t\t\t},\n\t\t\t\tRuntimeClasses: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"testclass\"),\n\t\t\t\t},\n\t\t\t\tNamespaces: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"ingress-nginx\"),\n\t\t\t\t\tpulumi.String(\"kube-system\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rancher2.NewCluster(ctx, \"foo\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"Terraform cluster with PSACT\"),\n\t\t\tDefaultPodSecurityAdmissionConfigurationTemplateName: pulumi.String(\"\u003cname\u003e\"),\n\t\t\tRkeConfig: \u0026rancher2.ClusterRkeConfigArgs{\n\t\t\t\tNetwork: \u0026rancher2.ClusterRkeConfigNetworkArgs{\n\t\t\t\t\tPlugin: pulumi.String(\"canal\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rancher2.PodSecurityAdmissionConfigurationTemplate;\nimport com.pulumi.rancher2.PodSecurityAdmissionConfigurationTemplateArgs;\nimport com.pulumi.rancher2.inputs.PodSecurityAdmissionConfigurationTemplateDefaultsArgs;\nimport com.pulumi.rancher2.inputs.PodSecurityAdmissionConfigurationTemplateExemptionsArgs;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigNetworkArgs;\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 // Custom PSACT (if you wish to use your own)\n var foo = new PodSecurityAdmissionConfigurationTemplate(\"foo\", PodSecurityAdmissionConfigurationTemplateArgs.builder()\n .name(\"custom-psact\")\n .description(\"This is my custom Pod Security Admission Configuration Template\")\n .defaults(PodSecurityAdmissionConfigurationTemplateDefaultsArgs.builder()\n .audit(\"restricted\")\n .auditVersion(\"latest\")\n .enforce(\"restricted\")\n .enforceVersion(\"latest\")\n .warn(\"restricted\")\n .warnVersion(\"latest\")\n .build())\n .exemptions(PodSecurityAdmissionConfigurationTemplateExemptionsArgs.builder()\n .usernames(\"testuser\")\n .runtimeClasses(\"testclass\")\n .namespaces( \n \"ingress-nginx\",\n \"kube-system\")\n .build())\n .build());\n\n var fooCluster = new Cluster(\"fooCluster\", ClusterArgs.builder()\n .name(\"foo\")\n .description(\"Terraform cluster with PSACT\")\n .defaultPodSecurityAdmissionConfigurationTemplateName(\"\u003cname\u003e\")\n .rkeConfig(ClusterRkeConfigArgs.builder()\n .network(ClusterRkeConfigNetworkArgs.builder()\n .plugin(\"canal\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Custom PSACT (if you wish to use your own)\n foo:\n type: rancher2:PodSecurityAdmissionConfigurationTemplate\n properties:\n name: custom-psact\n description: This is my custom Pod Security Admission Configuration Template\n defaults:\n audit: restricted\n auditVersion: latest\n enforce: restricted\n enforceVersion: latest\n warn: restricted\n warnVersion: latest\n exemptions:\n usernames:\n - testuser\n runtimeClasses:\n - testclass\n namespaces:\n - ingress-nginx\n - kube-system\n fooCluster:\n type: rancher2:Cluster\n name: foo\n properties:\n name: foo\n description: Terraform cluster with PSACT\n defaultPodSecurityAdmissionConfigurationTemplateName: \u003cname\u003e\n rkeConfig:\n network:\n plugin: canal\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Importing EKS cluster to Rancher v2, using `eks_config_v2`. For Rancher v2.5.x and above.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\nconst foo = new rancher2.CloudCredential(\"foo\", {\n name: \"foo\",\n description: \"foo test\",\n amazonec2CredentialConfig: {\n accessKey: \"\u003caws-access-key\u003e\",\n secretKey: \"\u003caws-secret-key\u003e\",\n },\n});\nconst fooCluster = new rancher2.Cluster(\"foo\", {\n name: \"foo\",\n description: \"Terraform EKS cluster\",\n eksConfigV2: {\n cloudCredentialId: foo.id,\n name: \"\u003ccluster-name\u003e\",\n region: \"\u003ceks-region\u003e\",\n imported: true,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\nfoo = rancher2.CloudCredential(\"foo\",\n name=\"foo\",\n description=\"foo test\",\n amazonec2_credential_config=rancher2.CloudCredentialAmazonec2CredentialConfigArgs(\n access_key=\"\u003caws-access-key\u003e\",\n secret_key=\"\u003caws-secret-key\u003e\",\n ))\nfoo_cluster = rancher2.Cluster(\"foo\",\n name=\"foo\",\n description=\"Terraform EKS cluster\",\n eks_config_v2=rancher2.ClusterEksConfigV2Args(\n cloud_credential_id=foo.id,\n name=\"\u003ccluster-name\u003e\",\n region=\"\u003ceks-region\u003e\",\n imported=True,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Rancher2.CloudCredential(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"foo test\",\n Amazonec2CredentialConfig = new Rancher2.Inputs.CloudCredentialAmazonec2CredentialConfigArgs\n {\n AccessKey = \"\u003caws-access-key\u003e\",\n SecretKey = \"\u003caws-secret-key\u003e\",\n },\n });\n\n var fooCluster = new Rancher2.Cluster(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"Terraform EKS cluster\",\n EksConfigV2 = new Rancher2.Inputs.ClusterEksConfigV2Args\n {\n CloudCredentialId = foo.Id,\n Name = \"\u003ccluster-name\u003e\",\n Region = \"\u003ceks-region\u003e\",\n Imported = true,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfoo, err := rancher2.NewCloudCredential(ctx, \"foo\", \u0026rancher2.CloudCredentialArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"foo test\"),\n\t\t\tAmazonec2CredentialConfig: \u0026rancher2.CloudCredentialAmazonec2CredentialConfigArgs{\n\t\t\t\tAccessKey: pulumi.String(\"\u003caws-access-key\u003e\"),\n\t\t\t\tSecretKey: pulumi.String(\"\u003caws-secret-key\u003e\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rancher2.NewCluster(ctx, \"foo\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"Terraform EKS cluster\"),\n\t\t\tEksConfigV2: \u0026rancher2.ClusterEksConfigV2Args{\n\t\t\t\tCloudCredentialId: foo.ID(),\n\t\t\t\tName: pulumi.String(\"\u003ccluster-name\u003e\"),\n\t\t\t\tRegion: pulumi.String(\"\u003ceks-region\u003e\"),\n\t\t\t\tImported: pulumi.Bool(true),\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.rancher2.CloudCredential;\nimport com.pulumi.rancher2.CloudCredentialArgs;\nimport com.pulumi.rancher2.inputs.CloudCredentialAmazonec2CredentialConfigArgs;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterEksConfigV2Args;\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 foo = new CloudCredential(\"foo\", CloudCredentialArgs.builder()\n .name(\"foo\")\n .description(\"foo test\")\n .amazonec2CredentialConfig(CloudCredentialAmazonec2CredentialConfigArgs.builder()\n .accessKey(\"\u003caws-access-key\u003e\")\n .secretKey(\"\u003caws-secret-key\u003e\")\n .build())\n .build());\n\n var fooCluster = new Cluster(\"fooCluster\", ClusterArgs.builder()\n .name(\"foo\")\n .description(\"Terraform EKS cluster\")\n .eksConfigV2(ClusterEksConfigV2Args.builder()\n .cloudCredentialId(foo.id())\n .name(\"\u003ccluster-name\u003e\")\n .region(\"\u003ceks-region\u003e\")\n .imported(true)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: rancher2:CloudCredential\n properties:\n name: foo\n description: foo test\n amazonec2CredentialConfig:\n accessKey: \u003caws-access-key\u003e\n secretKey: \u003caws-secret-key\u003e\n fooCluster:\n type: rancher2:Cluster\n name: foo\n properties:\n name: foo\n description: Terraform EKS cluster\n eksConfigV2:\n cloudCredentialId: ${foo.id}\n name: \u003ccluster-name\u003e\n region: \u003ceks-region\u003e\n imported: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating EKS cluster from Rancher v2, using `eks_config_v2`. For Rancher v2.5.x and above.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\nconst foo = new rancher2.CloudCredential(\"foo\", {\n name: \"foo\",\n description: \"foo test\",\n amazonec2CredentialConfig: {\n accessKey: \"\u003caws-access-key\u003e\",\n secretKey: \"\u003caws-secret-key\u003e\",\n },\n});\nconst fooCluster = new rancher2.Cluster(\"foo\", {\n name: \"foo\",\n description: \"Terraform EKS cluster\",\n eksConfigV2: {\n cloudCredentialId: foo.id,\n region: \"\u003cEKS_REGION\u003e\",\n kubernetesVersion: \"1.24\",\n loggingTypes: [\n \"audit\",\n \"api\",\n ],\n nodeGroups: [\n {\n name: \"node_group1\",\n instanceType: \"t3.medium\",\n desiredSize: 3,\n maxSize: 5,\n },\n {\n name: \"node_group2\",\n instanceType: \"m5.xlarge\",\n desiredSize: 2,\n maxSize: 3,\n nodeRole: \"arn:aws:iam::role/test-NodeInstanceRole\",\n },\n ],\n privateAccess: true,\n publicAccess: false,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\nfoo = rancher2.CloudCredential(\"foo\",\n name=\"foo\",\n description=\"foo test\",\n amazonec2_credential_config=rancher2.CloudCredentialAmazonec2CredentialConfigArgs(\n access_key=\"\u003caws-access-key\u003e\",\n secret_key=\"\u003caws-secret-key\u003e\",\n ))\nfoo_cluster = rancher2.Cluster(\"foo\",\n name=\"foo\",\n description=\"Terraform EKS cluster\",\n eks_config_v2=rancher2.ClusterEksConfigV2Args(\n cloud_credential_id=foo.id,\n region=\"\u003cEKS_REGION\u003e\",\n kubernetes_version=\"1.24\",\n logging_types=[\n \"audit\",\n \"api\",\n ],\n node_groups=[\n rancher2.ClusterEksConfigV2NodeGroupArgs(\n name=\"node_group1\",\n instance_type=\"t3.medium\",\n desired_size=3,\n max_size=5,\n ),\n rancher2.ClusterEksConfigV2NodeGroupArgs(\n name=\"node_group2\",\n instance_type=\"m5.xlarge\",\n desired_size=2,\n max_size=3,\n node_role=\"arn:aws:iam::role/test-NodeInstanceRole\",\n ),\n ],\n private_access=True,\n public_access=False,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Rancher2.CloudCredential(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"foo test\",\n Amazonec2CredentialConfig = new Rancher2.Inputs.CloudCredentialAmazonec2CredentialConfigArgs\n {\n AccessKey = \"\u003caws-access-key\u003e\",\n SecretKey = \"\u003caws-secret-key\u003e\",\n },\n });\n\n var fooCluster = new Rancher2.Cluster(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"Terraform EKS cluster\",\n EksConfigV2 = new Rancher2.Inputs.ClusterEksConfigV2Args\n {\n CloudCredentialId = foo.Id,\n Region = \"\u003cEKS_REGION\u003e\",\n KubernetesVersion = \"1.24\",\n LoggingTypes = new[]\n {\n \"audit\",\n \"api\",\n },\n NodeGroups = new[]\n {\n new Rancher2.Inputs.ClusterEksConfigV2NodeGroupArgs\n {\n Name = \"node_group1\",\n InstanceType = \"t3.medium\",\n DesiredSize = 3,\n MaxSize = 5,\n },\n new Rancher2.Inputs.ClusterEksConfigV2NodeGroupArgs\n {\n Name = \"node_group2\",\n InstanceType = \"m5.xlarge\",\n DesiredSize = 2,\n MaxSize = 3,\n NodeRole = \"arn:aws:iam::role/test-NodeInstanceRole\",\n },\n },\n PrivateAccess = true,\n PublicAccess = false,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfoo, err := rancher2.NewCloudCredential(ctx, \"foo\", \u0026rancher2.CloudCredentialArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"foo test\"),\n\t\t\tAmazonec2CredentialConfig: \u0026rancher2.CloudCredentialAmazonec2CredentialConfigArgs{\n\t\t\t\tAccessKey: pulumi.String(\"\u003caws-access-key\u003e\"),\n\t\t\t\tSecretKey: pulumi.String(\"\u003caws-secret-key\u003e\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rancher2.NewCluster(ctx, \"foo\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"Terraform EKS cluster\"),\n\t\t\tEksConfigV2: \u0026rancher2.ClusterEksConfigV2Args{\n\t\t\t\tCloudCredentialId: foo.ID(),\n\t\t\t\tRegion: pulumi.String(\"\u003cEKS_REGION\u003e\"),\n\t\t\t\tKubernetesVersion: pulumi.String(\"1.24\"),\n\t\t\t\tLoggingTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"audit\"),\n\t\t\t\t\tpulumi.String(\"api\"),\n\t\t\t\t},\n\t\t\t\tNodeGroups: rancher2.ClusterEksConfigV2NodeGroupArray{\n\t\t\t\t\t\u0026rancher2.ClusterEksConfigV2NodeGroupArgs{\n\t\t\t\t\t\tName: pulumi.String(\"node_group1\"),\n\t\t\t\t\t\tInstanceType: pulumi.String(\"t3.medium\"),\n\t\t\t\t\t\tDesiredSize: pulumi.Int(3),\n\t\t\t\t\t\tMaxSize: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026rancher2.ClusterEksConfigV2NodeGroupArgs{\n\t\t\t\t\t\tName: pulumi.String(\"node_group2\"),\n\t\t\t\t\t\tInstanceType: pulumi.String(\"m5.xlarge\"),\n\t\t\t\t\t\tDesiredSize: pulumi.Int(2),\n\t\t\t\t\t\tMaxSize: pulumi.Int(3),\n\t\t\t\t\t\tNodeRole: pulumi.String(\"arn:aws:iam::role/test-NodeInstanceRole\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tPrivateAccess: pulumi.Bool(true),\n\t\t\t\tPublicAccess: pulumi.Bool(false),\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.rancher2.CloudCredential;\nimport com.pulumi.rancher2.CloudCredentialArgs;\nimport com.pulumi.rancher2.inputs.CloudCredentialAmazonec2CredentialConfigArgs;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterEksConfigV2Args;\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 foo = new CloudCredential(\"foo\", CloudCredentialArgs.builder()\n .name(\"foo\")\n .description(\"foo test\")\n .amazonec2CredentialConfig(CloudCredentialAmazonec2CredentialConfigArgs.builder()\n .accessKey(\"\u003caws-access-key\u003e\")\n .secretKey(\"\u003caws-secret-key\u003e\")\n .build())\n .build());\n\n var fooCluster = new Cluster(\"fooCluster\", ClusterArgs.builder()\n .name(\"foo\")\n .description(\"Terraform EKS cluster\")\n .eksConfigV2(ClusterEksConfigV2Args.builder()\n .cloudCredentialId(foo.id())\n .region(\"\u003cEKS_REGION\u003e\")\n .kubernetesVersion(\"1.24\")\n .loggingTypes( \n \"audit\",\n \"api\")\n .nodeGroups( \n ClusterEksConfigV2NodeGroupArgs.builder()\n .name(\"node_group1\")\n .instanceType(\"t3.medium\")\n .desiredSize(3)\n .maxSize(5)\n .build(),\n ClusterEksConfigV2NodeGroupArgs.builder()\n .name(\"node_group2\")\n .instanceType(\"m5.xlarge\")\n .desiredSize(2)\n .maxSize(3)\n .nodeRole(\"arn:aws:iam::role/test-NodeInstanceRole\")\n .build())\n .privateAccess(true)\n .publicAccess(false)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: rancher2:CloudCredential\n properties:\n name: foo\n description: foo test\n amazonec2CredentialConfig:\n accessKey: \u003caws-access-key\u003e\n secretKey: \u003caws-secret-key\u003e\n fooCluster:\n type: rancher2:Cluster\n name: foo\n properties:\n name: foo\n description: Terraform EKS cluster\n eksConfigV2:\n cloudCredentialId: ${foo.id}\n region: \u003cEKS_REGION\u003e\n kubernetesVersion: '1.24'\n loggingTypes:\n - audit\n - api\n nodeGroups:\n - name: node_group1\n instanceType: t3.medium\n desiredSize: 3\n maxSize: 5\n - name: node_group2\n instanceType: m5.xlarge\n desiredSize: 2\n maxSize: 3\n nodeRole: arn:aws:iam::role/test-NodeInstanceRole\n privateAccess: true\n publicAccess: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating EKS cluster from Rancher v2, using `eks_config_v2` and launch template. For Rancher v2.5.6 and above.\n\nNote: To use `launch_template` you must provide the ID (seen as `\u003cEC2_LAUNCH_TEMPLATE_ID\u003e`) to the template either as a static value. Or fetched via AWS data-source using one of: aws_ami first and provide the ID to that.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\nconst foo = new rancher2.CloudCredential(\"foo\", {\n name: \"foo\",\n description: \"foo test\",\n amazonec2CredentialConfig: {\n accessKey: \"\u003caws-access-key\u003e\",\n secretKey: \"\u003caws-secret-key\u003e\",\n },\n});\nconst fooCluster = new rancher2.Cluster(\"foo\", {\n name: \"foo\",\n description: \"Terraform EKS cluster\",\n eksConfigV2: {\n cloudCredentialId: foo.id,\n region: \"\u003cEKS_REGION\u003e\",\n kubernetesVersion: \"1.24\",\n loggingTypes: [\n \"audit\",\n \"api\",\n ],\n nodeGroups: [{\n desiredSize: 3,\n maxSize: 5,\n name: \"node_group1\",\n launchTemplates: [{\n id: \"\u003cec2-launch-template-id\u003e\",\n version: 1,\n }],\n }],\n privateAccess: true,\n publicAccess: true,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\nfoo = rancher2.CloudCredential(\"foo\",\n name=\"foo\",\n description=\"foo test\",\n amazonec2_credential_config=rancher2.CloudCredentialAmazonec2CredentialConfigArgs(\n access_key=\"\u003caws-access-key\u003e\",\n secret_key=\"\u003caws-secret-key\u003e\",\n ))\nfoo_cluster = rancher2.Cluster(\"foo\",\n name=\"foo\",\n description=\"Terraform EKS cluster\",\n eks_config_v2=rancher2.ClusterEksConfigV2Args(\n cloud_credential_id=foo.id,\n region=\"\u003cEKS_REGION\u003e\",\n kubernetes_version=\"1.24\",\n logging_types=[\n \"audit\",\n \"api\",\n ],\n node_groups=[rancher2.ClusterEksConfigV2NodeGroupArgs(\n desired_size=3,\n max_size=5,\n name=\"node_group1\",\n launch_templates=[rancher2.ClusterEksConfigV2NodeGroupLaunchTemplateArgs(\n id=\"\u003cec2-launch-template-id\u003e\",\n version=1,\n )],\n )],\n private_access=True,\n public_access=True,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Rancher2.CloudCredential(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"foo test\",\n Amazonec2CredentialConfig = new Rancher2.Inputs.CloudCredentialAmazonec2CredentialConfigArgs\n {\n AccessKey = \"\u003caws-access-key\u003e\",\n SecretKey = \"\u003caws-secret-key\u003e\",\n },\n });\n\n var fooCluster = new Rancher2.Cluster(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"Terraform EKS cluster\",\n EksConfigV2 = new Rancher2.Inputs.ClusterEksConfigV2Args\n {\n CloudCredentialId = foo.Id,\n Region = \"\u003cEKS_REGION\u003e\",\n KubernetesVersion = \"1.24\",\n LoggingTypes = new[]\n {\n \"audit\",\n \"api\",\n },\n NodeGroups = new[]\n {\n new Rancher2.Inputs.ClusterEksConfigV2NodeGroupArgs\n {\n DesiredSize = 3,\n MaxSize = 5,\n Name = \"node_group1\",\n LaunchTemplates = new[]\n {\n new Rancher2.Inputs.ClusterEksConfigV2NodeGroupLaunchTemplateArgs\n {\n Id = \"\u003cec2-launch-template-id\u003e\",\n Version = 1,\n },\n },\n },\n },\n PrivateAccess = true,\n PublicAccess = true,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfoo, err := rancher2.NewCloudCredential(ctx, \"foo\", \u0026rancher2.CloudCredentialArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"foo test\"),\n\t\t\tAmazonec2CredentialConfig: \u0026rancher2.CloudCredentialAmazonec2CredentialConfigArgs{\n\t\t\t\tAccessKey: pulumi.String(\"\u003caws-access-key\u003e\"),\n\t\t\t\tSecretKey: pulumi.String(\"\u003caws-secret-key\u003e\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rancher2.NewCluster(ctx, \"foo\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"Terraform EKS cluster\"),\n\t\t\tEksConfigV2: \u0026rancher2.ClusterEksConfigV2Args{\n\t\t\t\tCloudCredentialId: foo.ID(),\n\t\t\t\tRegion: pulumi.String(\"\u003cEKS_REGION\u003e\"),\n\t\t\t\tKubernetesVersion: pulumi.String(\"1.24\"),\n\t\t\t\tLoggingTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"audit\"),\n\t\t\t\t\tpulumi.String(\"api\"),\n\t\t\t\t},\n\t\t\t\tNodeGroups: rancher2.ClusterEksConfigV2NodeGroupArray{\n\t\t\t\t\t\u0026rancher2.ClusterEksConfigV2NodeGroupArgs{\n\t\t\t\t\t\tDesiredSize: pulumi.Int(3),\n\t\t\t\t\t\tMaxSize: pulumi.Int(5),\n\t\t\t\t\t\tName: pulumi.String(\"node_group1\"),\n\t\t\t\t\t\tLaunchTemplates: rancher2.ClusterEksConfigV2NodeGroupLaunchTemplateArray{\n\t\t\t\t\t\t\t\u0026rancher2.ClusterEksConfigV2NodeGroupLaunchTemplateArgs{\n\t\t\t\t\t\t\t\tId: pulumi.String(\"\u003cec2-launch-template-id\u003e\"),\n\t\t\t\t\t\t\t\tVersion: pulumi.Int(1),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tPrivateAccess: pulumi.Bool(true),\n\t\t\t\tPublicAccess: pulumi.Bool(true),\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.rancher2.CloudCredential;\nimport com.pulumi.rancher2.CloudCredentialArgs;\nimport com.pulumi.rancher2.inputs.CloudCredentialAmazonec2CredentialConfigArgs;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterEksConfigV2Args;\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 foo = new CloudCredential(\"foo\", CloudCredentialArgs.builder()\n .name(\"foo\")\n .description(\"foo test\")\n .amazonec2CredentialConfig(CloudCredentialAmazonec2CredentialConfigArgs.builder()\n .accessKey(\"\u003caws-access-key\u003e\")\n .secretKey(\"\u003caws-secret-key\u003e\")\n .build())\n .build());\n\n var fooCluster = new Cluster(\"fooCluster\", ClusterArgs.builder()\n .name(\"foo\")\n .description(\"Terraform EKS cluster\")\n .eksConfigV2(ClusterEksConfigV2Args.builder()\n .cloudCredentialId(foo.id())\n .region(\"\u003cEKS_REGION\u003e\")\n .kubernetesVersion(\"1.24\")\n .loggingTypes( \n \"audit\",\n \"api\")\n .nodeGroups(ClusterEksConfigV2NodeGroupArgs.builder()\n .desiredSize(3)\n .maxSize(5)\n .name(\"node_group1\")\n .launchTemplates(ClusterEksConfigV2NodeGroupLaunchTemplateArgs.builder()\n .id(\"\u003cec2-launch-template-id\u003e\")\n .version(1)\n .build())\n .build())\n .privateAccess(true)\n .publicAccess(true)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: rancher2:CloudCredential\n properties:\n name: foo\n description: foo test\n amazonec2CredentialConfig:\n accessKey: \u003caws-access-key\u003e\n secretKey: \u003caws-secret-key\u003e\n fooCluster:\n type: rancher2:Cluster\n name: foo\n properties:\n name: foo\n description: Terraform EKS cluster\n eksConfigV2:\n cloudCredentialId: ${foo.id}\n region: \u003cEKS_REGION\u003e\n kubernetesVersion: '1.24'\n loggingTypes:\n - audit\n - api\n nodeGroups:\n - desiredSize: 3\n maxSize: 5\n name: node_group1\n launchTemplates:\n - id: \u003cec2-launch-template-id\u003e\n version: 1\n privateAccess: true\n publicAccess: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating AKS cluster from Rancher v2, using `aks_config_v2`. For Rancher v2.6.0 and above.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\nconst foo_aks = new rancher2.CloudCredential(\"foo-aks\", {\n name: \"foo-aks\",\n azureCredentialConfig: {\n clientId: \"\u003cclient-id\u003e\",\n clientSecret: \"\u003cclient-secret\u003e\",\n subscriptionId: \"\u003csubscription-id\u003e\",\n },\n});\nconst foo = new rancher2.Cluster(\"foo\", {\n name: \"foo\",\n description: \"Terraform AKS cluster\",\n aksConfigV2: {\n cloudCredentialId: foo_aks.id,\n resourceGroup: \"\u003cresource-group\u003e\",\n resourceLocation: \"\u003cresource-location\u003e\",\n dnsPrefix: \"\u003cdns-prefix\u003e\",\n kubernetesVersion: \"1.24.6\",\n networkPlugin: \"\u003cnetwork-plugin\u003e\",\n nodePools: [\n {\n availabilityZones: [\n \"1\",\n \"2\",\n \"3\",\n ],\n name: \"\u003cnodepool-name-1\u003e\",\n mode: \"System\",\n count: 1,\n orchestratorVersion: \"1.21.2\",\n osDiskSizeGb: 128,\n vmSize: \"Standard_DS2_v2\",\n },\n {\n availabilityZones: [\n \"1\",\n \"2\",\n \"3\",\n ],\n name: \"\u003cnodepool-name-2\u003e\",\n count: 1,\n mode: \"User\",\n orchestratorVersion: \"1.21.2\",\n osDiskSizeGb: 128,\n vmSize: \"Standard_DS2_v2\",\n maxSurge: \"25%\",\n labels: {\n test1: \"data1\",\n test2: \"data2\",\n },\n taints: [\"none:PreferNoSchedule\"],\n },\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\nfoo_aks = rancher2.CloudCredential(\"foo-aks\",\n name=\"foo-aks\",\n azure_credential_config=rancher2.CloudCredentialAzureCredentialConfigArgs(\n client_id=\"\u003cclient-id\u003e\",\n client_secret=\"\u003cclient-secret\u003e\",\n subscription_id=\"\u003csubscription-id\u003e\",\n ))\nfoo = rancher2.Cluster(\"foo\",\n name=\"foo\",\n description=\"Terraform AKS cluster\",\n aks_config_v2=rancher2.ClusterAksConfigV2Args(\n cloud_credential_id=foo_aks.id,\n resource_group=\"\u003cresource-group\u003e\",\n resource_location=\"\u003cresource-location\u003e\",\n dns_prefix=\"\u003cdns-prefix\u003e\",\n kubernetes_version=\"1.24.6\",\n network_plugin=\"\u003cnetwork-plugin\u003e\",\n node_pools=[\n rancher2.ClusterAksConfigV2NodePoolArgs(\n availability_zones=[\n \"1\",\n \"2\",\n \"3\",\n ],\n name=\"\u003cnodepool-name-1\u003e\",\n mode=\"System\",\n count=1,\n orchestrator_version=\"1.21.2\",\n os_disk_size_gb=128,\n vm_size=\"Standard_DS2_v2\",\n ),\n rancher2.ClusterAksConfigV2NodePoolArgs(\n availability_zones=[\n \"1\",\n \"2\",\n \"3\",\n ],\n name=\"\u003cnodepool-name-2\u003e\",\n count=1,\n mode=\"User\",\n orchestrator_version=\"1.21.2\",\n os_disk_size_gb=128,\n vm_size=\"Standard_DS2_v2\",\n max_surge=\"25%\",\n labels={\n \"test1\": \"data1\",\n \"test2\": \"data2\",\n },\n taints=[\"none:PreferNoSchedule\"],\n ),\n ],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo_aks = new Rancher2.CloudCredential(\"foo-aks\", new()\n {\n Name = \"foo-aks\",\n AzureCredentialConfig = new Rancher2.Inputs.CloudCredentialAzureCredentialConfigArgs\n {\n ClientId = \"\u003cclient-id\u003e\",\n ClientSecret = \"\u003cclient-secret\u003e\",\n SubscriptionId = \"\u003csubscription-id\u003e\",\n },\n });\n\n var foo = new Rancher2.Cluster(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"Terraform AKS cluster\",\n AksConfigV2 = new Rancher2.Inputs.ClusterAksConfigV2Args\n {\n CloudCredentialId = foo_aks.Id,\n ResourceGroup = \"\u003cresource-group\u003e\",\n ResourceLocation = \"\u003cresource-location\u003e\",\n DnsPrefix = \"\u003cdns-prefix\u003e\",\n KubernetesVersion = \"1.24.6\",\n NetworkPlugin = \"\u003cnetwork-plugin\u003e\",\n NodePools = new[]\n {\n new Rancher2.Inputs.ClusterAksConfigV2NodePoolArgs\n {\n AvailabilityZones = new[]\n {\n \"1\",\n \"2\",\n \"3\",\n },\n Name = \"\u003cnodepool-name-1\u003e\",\n Mode = \"System\",\n Count = 1,\n OrchestratorVersion = \"1.21.2\",\n OsDiskSizeGb = 128,\n VmSize = \"Standard_DS2_v2\",\n },\n new Rancher2.Inputs.ClusterAksConfigV2NodePoolArgs\n {\n AvailabilityZones = new[]\n {\n \"1\",\n \"2\",\n \"3\",\n },\n Name = \"\u003cnodepool-name-2\u003e\",\n Count = 1,\n Mode = \"User\",\n OrchestratorVersion = \"1.21.2\",\n OsDiskSizeGb = 128,\n VmSize = \"Standard_DS2_v2\",\n MaxSurge = \"25%\",\n Labels = \n {\n { \"test1\", \"data1\" },\n { \"test2\", \"data2\" },\n },\n Taints = new[]\n {\n \"none:PreferNoSchedule\",\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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 := rancher2.NewCloudCredential(ctx, \"foo-aks\", \u0026rancher2.CloudCredentialArgs{\n\t\t\tName: pulumi.String(\"foo-aks\"),\n\t\t\tAzureCredentialConfig: \u0026rancher2.CloudCredentialAzureCredentialConfigArgs{\n\t\t\t\tClientId: pulumi.String(\"\u003cclient-id\u003e\"),\n\t\t\t\tClientSecret: pulumi.String(\"\u003cclient-secret\u003e\"),\n\t\t\t\tSubscriptionId: pulumi.String(\"\u003csubscription-id\u003e\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rancher2.NewCluster(ctx, \"foo\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"Terraform AKS cluster\"),\n\t\t\tAksConfigV2: \u0026rancher2.ClusterAksConfigV2Args{\n\t\t\t\tCloudCredentialId: foo_aks.ID(),\n\t\t\t\tResourceGroup: pulumi.String(\"\u003cresource-group\u003e\"),\n\t\t\t\tResourceLocation: pulumi.String(\"\u003cresource-location\u003e\"),\n\t\t\t\tDnsPrefix: pulumi.String(\"\u003cdns-prefix\u003e\"),\n\t\t\t\tKubernetesVersion: pulumi.String(\"1.24.6\"),\n\t\t\t\tNetworkPlugin: pulumi.String(\"\u003cnetwork-plugin\u003e\"),\n\t\t\t\tNodePools: rancher2.ClusterAksConfigV2NodePoolArray{\n\t\t\t\t\t\u0026rancher2.ClusterAksConfigV2NodePoolArgs{\n\t\t\t\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\t\t\t\tpulumi.String(\"3\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tName: pulumi.String(\"\u003cnodepool-name-1\u003e\"),\n\t\t\t\t\t\tMode: pulumi.String(\"System\"),\n\t\t\t\t\t\tCount: pulumi.Int(1),\n\t\t\t\t\t\tOrchestratorVersion: pulumi.String(\"1.21.2\"),\n\t\t\t\t\t\tOsDiskSizeGb: pulumi.Int(128),\n\t\t\t\t\t\tVmSize: pulumi.String(\"Standard_DS2_v2\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026rancher2.ClusterAksConfigV2NodePoolArgs{\n\t\t\t\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\t\t\t\tpulumi.String(\"3\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tName: pulumi.String(\"\u003cnodepool-name-2\u003e\"),\n\t\t\t\t\t\tCount: pulumi.Int(1),\n\t\t\t\t\t\tMode: pulumi.String(\"User\"),\n\t\t\t\t\t\tOrchestratorVersion: pulumi.String(\"1.21.2\"),\n\t\t\t\t\t\tOsDiskSizeGb: pulumi.Int(128),\n\t\t\t\t\t\tVmSize: pulumi.String(\"Standard_DS2_v2\"),\n\t\t\t\t\t\tMaxSurge: pulumi.String(\"25%\"),\n\t\t\t\t\t\tLabels: pulumi.Map{\n\t\t\t\t\t\t\t\"test1\": pulumi.Any(\"data1\"),\n\t\t\t\t\t\t\t\"test2\": pulumi.Any(\"data2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tTaints: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"none:PreferNoSchedule\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rancher2.CloudCredential;\nimport com.pulumi.rancher2.CloudCredentialArgs;\nimport com.pulumi.rancher2.inputs.CloudCredentialAzureCredentialConfigArgs;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterAksConfigV2Args;\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 foo_aks = new CloudCredential(\"foo-aks\", CloudCredentialArgs.builder()\n .name(\"foo-aks\")\n .azureCredentialConfig(CloudCredentialAzureCredentialConfigArgs.builder()\n .clientId(\"\u003cclient-id\u003e\")\n .clientSecret(\"\u003cclient-secret\u003e\")\n .subscriptionId(\"\u003csubscription-id\u003e\")\n .build())\n .build());\n\n var foo = new Cluster(\"foo\", ClusterArgs.builder()\n .name(\"foo\")\n .description(\"Terraform AKS cluster\")\n .aksConfigV2(ClusterAksConfigV2Args.builder()\n .cloudCredentialId(foo_aks.id())\n .resourceGroup(\"\u003cresource-group\u003e\")\n .resourceLocation(\"\u003cresource-location\u003e\")\n .dnsPrefix(\"\u003cdns-prefix\u003e\")\n .kubernetesVersion(\"1.24.6\")\n .networkPlugin(\"\u003cnetwork-plugin\u003e\")\n .nodePools( \n ClusterAksConfigV2NodePoolArgs.builder()\n .availabilityZones( \n \"1\",\n \"2\",\n \"3\")\n .name(\"\u003cnodepool-name-1\u003e\")\n .mode(\"System\")\n .count(1)\n .orchestratorVersion(\"1.21.2\")\n .osDiskSizeGb(128)\n .vmSize(\"Standard_DS2_v2\")\n .build(),\n ClusterAksConfigV2NodePoolArgs.builder()\n .availabilityZones( \n \"1\",\n \"2\",\n \"3\")\n .name(\"\u003cnodepool-name-2\u003e\")\n .count(1)\n .mode(\"User\")\n .orchestratorVersion(\"1.21.2\")\n .osDiskSizeGb(128)\n .vmSize(\"Standard_DS2_v2\")\n .maxSurge(\"25%\")\n .labels(Map.ofEntries(\n Map.entry(\"test1\", \"data1\"),\n Map.entry(\"test2\", \"data2\")\n ))\n .taints(\"none:PreferNoSchedule\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo-aks:\n type: rancher2:CloudCredential\n properties:\n name: foo-aks\n azureCredentialConfig:\n clientId: \u003cclient-id\u003e\n clientSecret: \u003cclient-secret\u003e\n subscriptionId: \u003csubscription-id\u003e\n foo:\n type: rancher2:Cluster\n properties:\n name: foo\n description: Terraform AKS cluster\n aksConfigV2:\n cloudCredentialId: ${[\"foo-aks\"].id}\n resourceGroup: \u003cresource-group\u003e\n resourceLocation: \u003cresource-location\u003e\n dnsPrefix: \u003cdns-prefix\u003e\n kubernetesVersion: 1.24.6\n networkPlugin: \u003cnetwork-plugin\u003e\n nodePools:\n - availabilityZones:\n - '1'\n - '2'\n - '3'\n name: \u003cnodepool-name-1\u003e\n mode: System\n count: 1\n orchestratorVersion: 1.21.2\n osDiskSizeGb: 128\n vmSize: Standard_DS2_v2\n - availabilityZones:\n - '1'\n - '2'\n - '3'\n name: \u003cnodepool-name-2\u003e\n count: 1\n mode: User\n orchestratorVersion: 1.21.2\n osDiskSizeGb: 128\n vmSize: Standard_DS2_v2\n maxSurge: 25%\n labels:\n test1: data1\n test2: data2\n taints:\n - none:PreferNoSchedule\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nClusters can be imported using the Rancher Cluster ID\n\n```sh\n$ pulumi import rancher2:index/cluster:Cluster foo \u0026lt;CLUSTER_ID\u0026gt;\n```\n", + "description": "Provides a Rancher v2 Cluster resource. This can be used to create Clusters for Rancher v2 environments and retrieve their information.\n\n## Example Usage\n\n**Note optional/computed arguments** If any `optional/computed` argument of this resource is defined by the user, removing it from tf file will NOT reset its value. To reset it, let its definition at tf file as empty/false object. Ex: `enable_cluster_monitoring = false`, `cloud_provider {}`, `name = \"\"`\n\n### Creating Rancher v2 imported cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\n// Create a new rancher2 imported Cluster\nconst foo_imported = new rancher2.Cluster(\"foo-imported\", {\n name: \"foo-imported\",\n description: \"Foo rancher2 imported cluster\",\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\n# Create a new rancher2 imported Cluster\nfoo_imported = rancher2.Cluster(\"foo-imported\",\n name=\"foo-imported\",\n description=\"Foo rancher2 imported cluster\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Create a new rancher2 imported Cluster\n var foo_imported = new Rancher2.Cluster(\"foo-imported\", new()\n {\n Name = \"foo-imported\",\n Description = \"Foo rancher2 imported cluster\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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// Create a new rancher2 imported Cluster\n\t\t_, err := rancher2.NewCluster(ctx, \"foo-imported\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo-imported\"),\n\t\t\tDescription: pulumi.String(\"Foo rancher2 imported cluster\"),\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.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\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 // Create a new rancher2 imported Cluster\n var foo_imported = new Cluster(\"foo-imported\", ClusterArgs.builder()\n .name(\"foo-imported\")\n .description(\"Foo rancher2 imported cluster\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Create a new rancher2 imported Cluster\n foo-imported:\n type: rancher2:Cluster\n properties:\n name: foo-imported\n description: Foo rancher2 imported cluster\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nCreating Rancher v2 RKE cluster\n\n### Creating Rancher v2 RKE cluster enabling and customizing monitoring\n\n**Note** Cluster monitoring version `0.2.0` and above, can't be enabled until cluster is fully deployed as [`kubeVersion`](https://github.com/rancher/system-charts/blob/52be656700468904b9bf15c3f39cd7112e1f8c9b/charts/rancher-monitoring/v0.2.0/Chart.yaml#L12) requirement has been introduced to helm chart\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\n// Create a new rancher2 RKE Cluster\nconst foo_custom = new rancher2.Cluster(\"foo-custom\", {\n name: \"foo-custom\",\n description: \"Foo rancher2 custom cluster\",\n rkeConfig: {\n network: {\n plugin: \"canal\",\n },\n },\n enableClusterMonitoring: true,\n clusterMonitoringInput: {\n answers: {\n \"exporter-kubelets.https\": true,\n \"exporter-node.enabled\": true,\n \"exporter-node.ports.metrics.port\": 9796,\n \"exporter-node.resources.limits.cpu\": \"200m\",\n \"exporter-node.resources.limits.memory\": \"200Mi\",\n \"grafana.persistence.enabled\": false,\n \"grafana.persistence.size\": \"10Gi\",\n \"grafana.persistence.storageClass\": \"default\",\n \"operator.resources.limits.memory\": \"500Mi\",\n \"prometheus.persistence.enabled\": \"false\",\n \"prometheus.persistence.size\": \"50Gi\",\n \"prometheus.persistence.storageClass\": \"default\",\n \"prometheus.persistent.useReleaseName\": \"true\",\n \"prometheus.resources.core.limits.cpu\": \"1000m\",\n \"prometheus.resources.core.limits.memory\": \"1500Mi\",\n \"prometheus.resources.core.requests.cpu\": \"750m\",\n \"prometheus.resources.core.requests.memory\": \"750Mi\",\n \"prometheus.retention\": \"12h\",\n },\n version: \"0.1.0\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\n# Create a new rancher2 RKE Cluster\nfoo_custom = rancher2.Cluster(\"foo-custom\",\n name=\"foo-custom\",\n description=\"Foo rancher2 custom cluster\",\n rke_config=rancher2.ClusterRkeConfigArgs(\n network=rancher2.ClusterRkeConfigNetworkArgs(\n plugin=\"canal\",\n ),\n ),\n enable_cluster_monitoring=True,\n cluster_monitoring_input=rancher2.ClusterClusterMonitoringInputArgs(\n answers={\n \"exporter-kubelets.https\": True,\n \"exporter-node.enabled\": True,\n \"exporter-node.ports.metrics.port\": 9796,\n \"exporter-node.resources.limits.cpu\": \"200m\",\n \"exporter-node.resources.limits.memory\": \"200Mi\",\n \"grafana.persistence.enabled\": False,\n \"grafana.persistence.size\": \"10Gi\",\n \"grafana.persistence.storageClass\": \"default\",\n \"operator.resources.limits.memory\": \"500Mi\",\n \"prometheus.persistence.enabled\": \"false\",\n \"prometheus.persistence.size\": \"50Gi\",\n \"prometheus.persistence.storageClass\": \"default\",\n \"prometheus.persistent.useReleaseName\": \"true\",\n \"prometheus.resources.core.limits.cpu\": \"1000m\",\n \"prometheus.resources.core.limits.memory\": \"1500Mi\",\n \"prometheus.resources.core.requests.cpu\": \"750m\",\n \"prometheus.resources.core.requests.memory\": \"750Mi\",\n \"prometheus.retention\": \"12h\",\n },\n version=\"0.1.0\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Create a new rancher2 RKE Cluster\n var foo_custom = new Rancher2.Cluster(\"foo-custom\", new()\n {\n Name = \"foo-custom\",\n Description = \"Foo rancher2 custom cluster\",\n RkeConfig = new Rancher2.Inputs.ClusterRkeConfigArgs\n {\n Network = new Rancher2.Inputs.ClusterRkeConfigNetworkArgs\n {\n Plugin = \"canal\",\n },\n },\n EnableClusterMonitoring = true,\n ClusterMonitoringInput = new Rancher2.Inputs.ClusterClusterMonitoringInputArgs\n {\n Answers = \n {\n { \"exporter-kubelets.https\", true },\n { \"exporter-node.enabled\", true },\n { \"exporter-node.ports.metrics.port\", 9796 },\n { \"exporter-node.resources.limits.cpu\", \"200m\" },\n { \"exporter-node.resources.limits.memory\", \"200Mi\" },\n { \"grafana.persistence.enabled\", false },\n { \"grafana.persistence.size\", \"10Gi\" },\n { \"grafana.persistence.storageClass\", \"default\" },\n { \"operator.resources.limits.memory\", \"500Mi\" },\n { \"prometheus.persistence.enabled\", \"false\" },\n { \"prometheus.persistence.size\", \"50Gi\" },\n { \"prometheus.persistence.storageClass\", \"default\" },\n { \"prometheus.persistent.useReleaseName\", \"true\" },\n { \"prometheus.resources.core.limits.cpu\", \"1000m\" },\n { \"prometheus.resources.core.limits.memory\", \"1500Mi\" },\n { \"prometheus.resources.core.requests.cpu\", \"750m\" },\n { \"prometheus.resources.core.requests.memory\", \"750Mi\" },\n { \"prometheus.retention\", \"12h\" },\n },\n Version = \"0.1.0\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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// Create a new rancher2 RKE Cluster\n\t\t_, err := rancher2.NewCluster(ctx, \"foo-custom\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo-custom\"),\n\t\t\tDescription: pulumi.String(\"Foo rancher2 custom cluster\"),\n\t\t\tRkeConfig: \u0026rancher2.ClusterRkeConfigArgs{\n\t\t\t\tNetwork: \u0026rancher2.ClusterRkeConfigNetworkArgs{\n\t\t\t\t\tPlugin: pulumi.String(\"canal\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEnableClusterMonitoring: pulumi.Bool(true),\n\t\t\tClusterMonitoringInput: \u0026rancher2.ClusterClusterMonitoringInputArgs{\n\t\t\t\tAnswers: pulumi.Map{\n\t\t\t\t\t\"exporter-kubelets.https\": pulumi.Any(true),\n\t\t\t\t\t\"exporter-node.enabled\": pulumi.Any(true),\n\t\t\t\t\t\"exporter-node.ports.metrics.port\": pulumi.Any(9796),\n\t\t\t\t\t\"exporter-node.resources.limits.cpu\": pulumi.Any(\"200m\"),\n\t\t\t\t\t\"exporter-node.resources.limits.memory\": pulumi.Any(\"200Mi\"),\n\t\t\t\t\t\"grafana.persistence.enabled\": pulumi.Any(false),\n\t\t\t\t\t\"grafana.persistence.size\": pulumi.Any(\"10Gi\"),\n\t\t\t\t\t\"grafana.persistence.storageClass\": pulumi.Any(\"default\"),\n\t\t\t\t\t\"operator.resources.limits.memory\": pulumi.Any(\"500Mi\"),\n\t\t\t\t\t\"prometheus.persistence.enabled\": pulumi.Any(\"false\"),\n\t\t\t\t\t\"prometheus.persistence.size\": pulumi.Any(\"50Gi\"),\n\t\t\t\t\t\"prometheus.persistence.storageClass\": pulumi.Any(\"default\"),\n\t\t\t\t\t\"prometheus.persistent.useReleaseName\": pulumi.Any(\"true\"),\n\t\t\t\t\t\"prometheus.resources.core.limits.cpu\": pulumi.Any(\"1000m\"),\n\t\t\t\t\t\"prometheus.resources.core.limits.memory\": pulumi.Any(\"1500Mi\"),\n\t\t\t\t\t\"prometheus.resources.core.requests.cpu\": pulumi.Any(\"750m\"),\n\t\t\t\t\t\"prometheus.resources.core.requests.memory\": pulumi.Any(\"750Mi\"),\n\t\t\t\t\t\"prometheus.retention\": pulumi.Any(\"12h\"),\n\t\t\t\t},\n\t\t\t\tVersion: pulumi.String(\"0.1.0\"),\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.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigNetworkArgs;\nimport com.pulumi.rancher2.inputs.ClusterClusterMonitoringInputArgs;\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 // Create a new rancher2 RKE Cluster\n var foo_custom = new Cluster(\"foo-custom\", ClusterArgs.builder()\n .name(\"foo-custom\")\n .description(\"Foo rancher2 custom cluster\")\n .rkeConfig(ClusterRkeConfigArgs.builder()\n .network(ClusterRkeConfigNetworkArgs.builder()\n .plugin(\"canal\")\n .build())\n .build())\n .enableClusterMonitoring(true)\n .clusterMonitoringInput(ClusterClusterMonitoringInputArgs.builder()\n .answers(Map.ofEntries(\n Map.entry(\"exporter-kubelets.https\", true),\n Map.entry(\"exporter-node.enabled\", true),\n Map.entry(\"exporter-node.ports.metrics.port\", 9796),\n Map.entry(\"exporter-node.resources.limits.cpu\", \"200m\"),\n Map.entry(\"exporter-node.resources.limits.memory\", \"200Mi\"),\n Map.entry(\"grafana.persistence.enabled\", false),\n Map.entry(\"grafana.persistence.size\", \"10Gi\"),\n Map.entry(\"grafana.persistence.storageClass\", \"default\"),\n Map.entry(\"operator.resources.limits.memory\", \"500Mi\"),\n Map.entry(\"prometheus.persistence.enabled\", \"false\"),\n Map.entry(\"prometheus.persistence.size\", \"50Gi\"),\n Map.entry(\"prometheus.persistence.storageClass\", \"default\"),\n Map.entry(\"prometheus.persistent.useReleaseName\", \"true\"),\n Map.entry(\"prometheus.resources.core.limits.cpu\", \"1000m\"),\n Map.entry(\"prometheus.resources.core.limits.memory\", \"1500Mi\"),\n Map.entry(\"prometheus.resources.core.requests.cpu\", \"750m\"),\n Map.entry(\"prometheus.resources.core.requests.memory\", \"750Mi\"),\n Map.entry(\"prometheus.retention\", \"12h\")\n ))\n .version(\"0.1.0\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Create a new rancher2 RKE Cluster\n foo-custom:\n type: rancher2:Cluster\n properties:\n name: foo-custom\n description: Foo rancher2 custom cluster\n rkeConfig:\n network:\n plugin: canal\n enableClusterMonitoring: true\n clusterMonitoringInput:\n answers:\n exporter-kubelets.https: true\n exporter-node.enabled: true\n exporter-node.ports.metrics.port: 9796\n exporter-node.resources.limits.cpu: 200m\n exporter-node.resources.limits.memory: 200Mi\n grafana.persistence.enabled: false\n grafana.persistence.size: 10Gi\n grafana.persistence.storageClass: default\n operator.resources.limits.memory: 500Mi\n prometheus.persistence.enabled: 'false'\n prometheus.persistence.size: 50Gi\n prometheus.persistence.storageClass: default\n prometheus.persistent.useReleaseName: 'true'\n prometheus.resources.core.limits.cpu: 1000m\n prometheus.resources.core.limits.memory: 1500Mi\n prometheus.resources.core.requests.cpu: 750m\n prometheus.resources.core.requests.memory: 750Mi\n prometheus.retention: 12h\n version: 0.1.0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Rancher v2 RKE cluster enabling/customizing monitoring and istio\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\n// Create a new rancher2 RKE Cluster\nconst foo_custom = new rancher2.Cluster(\"foo-custom\", {\n name: \"foo-custom\",\n description: \"Foo rancher2 custom cluster\",\n rkeConfig: {\n network: {\n plugin: \"canal\",\n },\n },\n enableClusterMonitoring: true,\n clusterMonitoringInput: {\n answers: {\n \"exporter-kubelets.https\": true,\n \"exporter-node.enabled\": true,\n \"exporter-node.ports.metrics.port\": 9796,\n \"exporter-node.resources.limits.cpu\": \"200m\",\n \"exporter-node.resources.limits.memory\": \"200Mi\",\n \"grafana.persistence.enabled\": false,\n \"grafana.persistence.size\": \"10Gi\",\n \"grafana.persistence.storageClass\": \"default\",\n \"operator.resources.limits.memory\": \"500Mi\",\n \"prometheus.persistence.enabled\": \"false\",\n \"prometheus.persistence.size\": \"50Gi\",\n \"prometheus.persistence.storageClass\": \"default\",\n \"prometheus.persistent.useReleaseName\": \"true\",\n \"prometheus.resources.core.limits.cpu\": \"1000m\",\n \"prometheus.resources.core.limits.memory\": \"1500Mi\",\n \"prometheus.resources.core.requests.cpu\": \"750m\",\n \"prometheus.resources.core.requests.memory\": \"750Mi\",\n \"prometheus.retention\": \"12h\",\n },\n version: \"0.1.0\",\n },\n});\n// Create a new rancher2 Cluster Sync for foo-custom cluster\nconst foo_customClusterSync = new rancher2.ClusterSync(\"foo-custom\", {\n clusterId: foo_custom.id,\n waitMonitoring: foo_custom.enableClusterMonitoring,\n});\n// Create a new rancher2 Namespace\nconst foo_istio = new rancher2.Namespace(\"foo-istio\", {\n name: \"istio-system\",\n projectId: foo_customClusterSync.systemProjectId,\n description: \"istio namespace\",\n});\n// Create a new rancher2 App deploying istio (should wait until monitoring is up and running)\nconst istio = new rancher2.App(\"istio\", {\n catalogName: \"system-library\",\n name: \"cluster-istio\",\n description: \"Terraform app acceptance test\",\n projectId: foo_istio.projectId,\n templateName: \"rancher-istio\",\n templateVersion: \"0.1.1\",\n targetNamespace: foo_istio.id,\n answers: {\n \"certmanager.enabled\": false,\n enableCRDs: true,\n \"galley.enabled\": true,\n \"gateways.enabled\": false,\n \"gateways.istio-ingressgateway.resources.limits.cpu\": \"2000m\",\n \"gateways.istio-ingressgateway.resources.limits.memory\": \"1024Mi\",\n \"gateways.istio-ingressgateway.resources.requests.cpu\": \"100m\",\n \"gateways.istio-ingressgateway.resources.requests.memory\": \"128Mi\",\n \"gateways.istio-ingressgateway.type\": \"NodePort\",\n \"global.monitoring.type\": \"cluster-monitoring\",\n \"global.rancher.clusterId\": foo_customClusterSync.clusterId,\n \"istio_cni.enabled\": \"false\",\n \"istiocoredns.enabled\": \"false\",\n \"kiali.enabled\": \"true\",\n \"mixer.enabled\": \"true\",\n \"mixer.policy.enabled\": \"true\",\n \"mixer.policy.resources.limits.cpu\": \"4800m\",\n \"mixer.policy.resources.limits.memory\": \"4096Mi\",\n \"mixer.policy.resources.requests.cpu\": \"1000m\",\n \"mixer.policy.resources.requests.memory\": \"1024Mi\",\n \"mixer.telemetry.resources.limits.cpu\": \"4800m\",\n \"mixer.telemetry.resources.limits.memory\": \"4096Mi\",\n \"mixer.telemetry.resources.requests.cpu\": \"1000m\",\n \"mixer.telemetry.resources.requests.memory\": \"1024Mi\",\n \"mtls.enabled\": false,\n \"nodeagent.enabled\": false,\n \"pilot.enabled\": true,\n \"pilot.resources.limits.cpu\": \"1000m\",\n \"pilot.resources.limits.memory\": \"4096Mi\",\n \"pilot.resources.requests.cpu\": \"500m\",\n \"pilot.resources.requests.memory\": \"2048Mi\",\n \"pilot.traceSampling\": \"1\",\n \"security.enabled\": true,\n \"sidecarInjectorWebhook.enabled\": true,\n \"tracing.enabled\": true,\n \"tracing.jaeger.resources.limits.cpu\": \"500m\",\n \"tracing.jaeger.resources.limits.memory\": \"1024Mi\",\n \"tracing.jaeger.resources.requests.cpu\": \"100m\",\n \"tracing.jaeger.resources.requests.memory\": \"100Mi\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\n# Create a new rancher2 RKE Cluster\nfoo_custom = rancher2.Cluster(\"foo-custom\",\n name=\"foo-custom\",\n description=\"Foo rancher2 custom cluster\",\n rke_config=rancher2.ClusterRkeConfigArgs(\n network=rancher2.ClusterRkeConfigNetworkArgs(\n plugin=\"canal\",\n ),\n ),\n enable_cluster_monitoring=True,\n cluster_monitoring_input=rancher2.ClusterClusterMonitoringInputArgs(\n answers={\n \"exporter-kubelets.https\": True,\n \"exporter-node.enabled\": True,\n \"exporter-node.ports.metrics.port\": 9796,\n \"exporter-node.resources.limits.cpu\": \"200m\",\n \"exporter-node.resources.limits.memory\": \"200Mi\",\n \"grafana.persistence.enabled\": False,\n \"grafana.persistence.size\": \"10Gi\",\n \"grafana.persistence.storageClass\": \"default\",\n \"operator.resources.limits.memory\": \"500Mi\",\n \"prometheus.persistence.enabled\": \"false\",\n \"prometheus.persistence.size\": \"50Gi\",\n \"prometheus.persistence.storageClass\": \"default\",\n \"prometheus.persistent.useReleaseName\": \"true\",\n \"prometheus.resources.core.limits.cpu\": \"1000m\",\n \"prometheus.resources.core.limits.memory\": \"1500Mi\",\n \"prometheus.resources.core.requests.cpu\": \"750m\",\n \"prometheus.resources.core.requests.memory\": \"750Mi\",\n \"prometheus.retention\": \"12h\",\n },\n version=\"0.1.0\",\n ))\n# Create a new rancher2 Cluster Sync for foo-custom cluster\nfoo_custom_cluster_sync = rancher2.ClusterSync(\"foo-custom\",\n cluster_id=foo_custom.id,\n wait_monitoring=foo_custom.enable_cluster_monitoring)\n# Create a new rancher2 Namespace\nfoo_istio = rancher2.Namespace(\"foo-istio\",\n name=\"istio-system\",\n project_id=foo_custom_cluster_sync.system_project_id,\n description=\"istio namespace\")\n# Create a new rancher2 App deploying istio (should wait until monitoring is up and running)\nistio = rancher2.App(\"istio\",\n catalog_name=\"system-library\",\n name=\"cluster-istio\",\n description=\"Terraform app acceptance test\",\n project_id=foo_istio.project_id,\n template_name=\"rancher-istio\",\n template_version=\"0.1.1\",\n target_namespace=foo_istio.id,\n answers={\n \"certmanager.enabled\": False,\n \"enableCRDs\": True,\n \"galley.enabled\": True,\n \"gateways.enabled\": False,\n \"gateways.istio-ingressgateway.resources.limits.cpu\": \"2000m\",\n \"gateways.istio-ingressgateway.resources.limits.memory\": \"1024Mi\",\n \"gateways.istio-ingressgateway.resources.requests.cpu\": \"100m\",\n \"gateways.istio-ingressgateway.resources.requests.memory\": \"128Mi\",\n \"gateways.istio-ingressgateway.type\": \"NodePort\",\n \"global.monitoring.type\": \"cluster-monitoring\",\n \"global.rancher.clusterId\": foo_custom_cluster_sync.cluster_id,\n \"istio_cni.enabled\": \"false\",\n \"istiocoredns.enabled\": \"false\",\n \"kiali.enabled\": \"true\",\n \"mixer.enabled\": \"true\",\n \"mixer.policy.enabled\": \"true\",\n \"mixer.policy.resources.limits.cpu\": \"4800m\",\n \"mixer.policy.resources.limits.memory\": \"4096Mi\",\n \"mixer.policy.resources.requests.cpu\": \"1000m\",\n \"mixer.policy.resources.requests.memory\": \"1024Mi\",\n \"mixer.telemetry.resources.limits.cpu\": \"4800m\",\n \"mixer.telemetry.resources.limits.memory\": \"4096Mi\",\n \"mixer.telemetry.resources.requests.cpu\": \"1000m\",\n \"mixer.telemetry.resources.requests.memory\": \"1024Mi\",\n \"mtls.enabled\": False,\n \"nodeagent.enabled\": False,\n \"pilot.enabled\": True,\n \"pilot.resources.limits.cpu\": \"1000m\",\n \"pilot.resources.limits.memory\": \"4096Mi\",\n \"pilot.resources.requests.cpu\": \"500m\",\n \"pilot.resources.requests.memory\": \"2048Mi\",\n \"pilot.traceSampling\": \"1\",\n \"security.enabled\": True,\n \"sidecarInjectorWebhook.enabled\": True,\n \"tracing.enabled\": True,\n \"tracing.jaeger.resources.limits.cpu\": \"500m\",\n \"tracing.jaeger.resources.limits.memory\": \"1024Mi\",\n \"tracing.jaeger.resources.requests.cpu\": \"100m\",\n \"tracing.jaeger.resources.requests.memory\": \"100Mi\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Create a new rancher2 RKE Cluster\n var foo_custom = new Rancher2.Cluster(\"foo-custom\", new()\n {\n Name = \"foo-custom\",\n Description = \"Foo rancher2 custom cluster\",\n RkeConfig = new Rancher2.Inputs.ClusterRkeConfigArgs\n {\n Network = new Rancher2.Inputs.ClusterRkeConfigNetworkArgs\n {\n Plugin = \"canal\",\n },\n },\n EnableClusterMonitoring = true,\n ClusterMonitoringInput = new Rancher2.Inputs.ClusterClusterMonitoringInputArgs\n {\n Answers = \n {\n { \"exporter-kubelets.https\", true },\n { \"exporter-node.enabled\", true },\n { \"exporter-node.ports.metrics.port\", 9796 },\n { \"exporter-node.resources.limits.cpu\", \"200m\" },\n { \"exporter-node.resources.limits.memory\", \"200Mi\" },\n { \"grafana.persistence.enabled\", false },\n { \"grafana.persistence.size\", \"10Gi\" },\n { \"grafana.persistence.storageClass\", \"default\" },\n { \"operator.resources.limits.memory\", \"500Mi\" },\n { \"prometheus.persistence.enabled\", \"false\" },\n { \"prometheus.persistence.size\", \"50Gi\" },\n { \"prometheus.persistence.storageClass\", \"default\" },\n { \"prometheus.persistent.useReleaseName\", \"true\" },\n { \"prometheus.resources.core.limits.cpu\", \"1000m\" },\n { \"prometheus.resources.core.limits.memory\", \"1500Mi\" },\n { \"prometheus.resources.core.requests.cpu\", \"750m\" },\n { \"prometheus.resources.core.requests.memory\", \"750Mi\" },\n { \"prometheus.retention\", \"12h\" },\n },\n Version = \"0.1.0\",\n },\n });\n\n // Create a new rancher2 Cluster Sync for foo-custom cluster\n var foo_customClusterSync = new Rancher2.ClusterSync(\"foo-custom\", new()\n {\n ClusterId = foo_custom.Id,\n WaitMonitoring = foo_custom.EnableClusterMonitoring,\n });\n\n // Create a new rancher2 Namespace\n var foo_istio = new Rancher2.Namespace(\"foo-istio\", new()\n {\n Name = \"istio-system\",\n ProjectId = foo_customClusterSync.SystemProjectId,\n Description = \"istio namespace\",\n });\n\n // Create a new rancher2 App deploying istio (should wait until monitoring is up and running)\n var istio = new Rancher2.App(\"istio\", new()\n {\n CatalogName = \"system-library\",\n Name = \"cluster-istio\",\n Description = \"Terraform app acceptance test\",\n ProjectId = foo_istio.ProjectId,\n TemplateName = \"rancher-istio\",\n TemplateVersion = \"0.1.1\",\n TargetNamespace = foo_istio.Id,\n Answers = \n {\n { \"certmanager.enabled\", false },\n { \"enableCRDs\", true },\n { \"galley.enabled\", true },\n { \"gateways.enabled\", false },\n { \"gateways.istio-ingressgateway.resources.limits.cpu\", \"2000m\" },\n { \"gateways.istio-ingressgateway.resources.limits.memory\", \"1024Mi\" },\n { \"gateways.istio-ingressgateway.resources.requests.cpu\", \"100m\" },\n { \"gateways.istio-ingressgateway.resources.requests.memory\", \"128Mi\" },\n { \"gateways.istio-ingressgateway.type\", \"NodePort\" },\n { \"global.monitoring.type\", \"cluster-monitoring\" },\n { \"global.rancher.clusterId\", foo_customClusterSync.ClusterId },\n { \"istio_cni.enabled\", \"false\" },\n { \"istiocoredns.enabled\", \"false\" },\n { \"kiali.enabled\", \"true\" },\n { \"mixer.enabled\", \"true\" },\n { \"mixer.policy.enabled\", \"true\" },\n { \"mixer.policy.resources.limits.cpu\", \"4800m\" },\n { \"mixer.policy.resources.limits.memory\", \"4096Mi\" },\n { \"mixer.policy.resources.requests.cpu\", \"1000m\" },\n { \"mixer.policy.resources.requests.memory\", \"1024Mi\" },\n { \"mixer.telemetry.resources.limits.cpu\", \"4800m\" },\n { \"mixer.telemetry.resources.limits.memory\", \"4096Mi\" },\n { \"mixer.telemetry.resources.requests.cpu\", \"1000m\" },\n { \"mixer.telemetry.resources.requests.memory\", \"1024Mi\" },\n { \"mtls.enabled\", false },\n { \"nodeagent.enabled\", false },\n { \"pilot.enabled\", true },\n { \"pilot.resources.limits.cpu\", \"1000m\" },\n { \"pilot.resources.limits.memory\", \"4096Mi\" },\n { \"pilot.resources.requests.cpu\", \"500m\" },\n { \"pilot.resources.requests.memory\", \"2048Mi\" },\n { \"pilot.traceSampling\", \"1\" },\n { \"security.enabled\", true },\n { \"sidecarInjectorWebhook.enabled\", true },\n { \"tracing.enabled\", true },\n { \"tracing.jaeger.resources.limits.cpu\", \"500m\" },\n { \"tracing.jaeger.resources.limits.memory\", \"1024Mi\" },\n { \"tracing.jaeger.resources.requests.cpu\", \"100m\" },\n { \"tracing.jaeger.resources.requests.memory\", \"100Mi\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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// Create a new rancher2 RKE Cluster\n\t\t_, err := rancher2.NewCluster(ctx, \"foo-custom\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo-custom\"),\n\t\t\tDescription: pulumi.String(\"Foo rancher2 custom cluster\"),\n\t\t\tRkeConfig: \u0026rancher2.ClusterRkeConfigArgs{\n\t\t\t\tNetwork: \u0026rancher2.ClusterRkeConfigNetworkArgs{\n\t\t\t\t\tPlugin: pulumi.String(\"canal\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEnableClusterMonitoring: pulumi.Bool(true),\n\t\t\tClusterMonitoringInput: \u0026rancher2.ClusterClusterMonitoringInputArgs{\n\t\t\t\tAnswers: pulumi.Map{\n\t\t\t\t\t\"exporter-kubelets.https\": pulumi.Any(true),\n\t\t\t\t\t\"exporter-node.enabled\": pulumi.Any(true),\n\t\t\t\t\t\"exporter-node.ports.metrics.port\": pulumi.Any(9796),\n\t\t\t\t\t\"exporter-node.resources.limits.cpu\": pulumi.Any(\"200m\"),\n\t\t\t\t\t\"exporter-node.resources.limits.memory\": pulumi.Any(\"200Mi\"),\n\t\t\t\t\t\"grafana.persistence.enabled\": pulumi.Any(false),\n\t\t\t\t\t\"grafana.persistence.size\": pulumi.Any(\"10Gi\"),\n\t\t\t\t\t\"grafana.persistence.storageClass\": pulumi.Any(\"default\"),\n\t\t\t\t\t\"operator.resources.limits.memory\": pulumi.Any(\"500Mi\"),\n\t\t\t\t\t\"prometheus.persistence.enabled\": pulumi.Any(\"false\"),\n\t\t\t\t\t\"prometheus.persistence.size\": pulumi.Any(\"50Gi\"),\n\t\t\t\t\t\"prometheus.persistence.storageClass\": pulumi.Any(\"default\"),\n\t\t\t\t\t\"prometheus.persistent.useReleaseName\": pulumi.Any(\"true\"),\n\t\t\t\t\t\"prometheus.resources.core.limits.cpu\": pulumi.Any(\"1000m\"),\n\t\t\t\t\t\"prometheus.resources.core.limits.memory\": pulumi.Any(\"1500Mi\"),\n\t\t\t\t\t\"prometheus.resources.core.requests.cpu\": pulumi.Any(\"750m\"),\n\t\t\t\t\t\"prometheus.resources.core.requests.memory\": pulumi.Any(\"750Mi\"),\n\t\t\t\t\t\"prometheus.retention\": pulumi.Any(\"12h\"),\n\t\t\t\t},\n\t\t\t\tVersion: pulumi.String(\"0.1.0\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new rancher2 Cluster Sync for foo-custom cluster\n\t\t_, err = rancher2.NewClusterSync(ctx, \"foo-custom\", \u0026rancher2.ClusterSyncArgs{\n\t\t\tClusterId: foo_custom.ID(),\n\t\t\tWaitMonitoring: foo_custom.EnableClusterMonitoring,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new rancher2 Namespace\n\t\t_, err = rancher2.NewNamespace(ctx, \"foo-istio\", \u0026rancher2.NamespaceArgs{\n\t\t\tName: pulumi.String(\"istio-system\"),\n\t\t\tProjectId: foo_customClusterSync.SystemProjectId,\n\t\t\tDescription: pulumi.String(\"istio namespace\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new rancher2 App deploying istio (should wait until monitoring is up and running)\n\t\t_, err = rancher2.NewApp(ctx, \"istio\", \u0026rancher2.AppArgs{\n\t\t\tCatalogName: pulumi.String(\"system-library\"),\n\t\t\tName: pulumi.String(\"cluster-istio\"),\n\t\t\tDescription: pulumi.String(\"Terraform app acceptance test\"),\n\t\t\tProjectId: foo_istio.ProjectId,\n\t\t\tTemplateName: pulumi.String(\"rancher-istio\"),\n\t\t\tTemplateVersion: pulumi.String(\"0.1.1\"),\n\t\t\tTargetNamespace: foo_istio.ID(),\n\t\t\tAnswers: pulumi.Map{\n\t\t\t\t\"certmanager.enabled\": pulumi.Any(false),\n\t\t\t\t\"enableCRDs\": pulumi.Any(true),\n\t\t\t\t\"galley.enabled\": pulumi.Any(true),\n\t\t\t\t\"gateways.enabled\": pulumi.Any(false),\n\t\t\t\t\"gateways.istio-ingressgateway.resources.limits.cpu\": pulumi.Any(\"2000m\"),\n\t\t\t\t\"gateways.istio-ingressgateway.resources.limits.memory\": pulumi.Any(\"1024Mi\"),\n\t\t\t\t\"gateways.istio-ingressgateway.resources.requests.cpu\": pulumi.Any(\"100m\"),\n\t\t\t\t\"gateways.istio-ingressgateway.resources.requests.memory\": pulumi.Any(\"128Mi\"),\n\t\t\t\t\"gateways.istio-ingressgateway.type\": pulumi.Any(\"NodePort\"),\n\t\t\t\t\"global.monitoring.type\": pulumi.Any(\"cluster-monitoring\"),\n\t\t\t\t\"global.rancher.clusterId\": foo_customClusterSync.ClusterId,\n\t\t\t\t\"istio_cni.enabled\": pulumi.Any(\"false\"),\n\t\t\t\t\"istiocoredns.enabled\": pulumi.Any(\"false\"),\n\t\t\t\t\"kiali.enabled\": pulumi.Any(\"true\"),\n\t\t\t\t\"mixer.enabled\": pulumi.Any(\"true\"),\n\t\t\t\t\"mixer.policy.enabled\": pulumi.Any(\"true\"),\n\t\t\t\t\"mixer.policy.resources.limits.cpu\": pulumi.Any(\"4800m\"),\n\t\t\t\t\"mixer.policy.resources.limits.memory\": pulumi.Any(\"4096Mi\"),\n\t\t\t\t\"mixer.policy.resources.requests.cpu\": pulumi.Any(\"1000m\"),\n\t\t\t\t\"mixer.policy.resources.requests.memory\": pulumi.Any(\"1024Mi\"),\n\t\t\t\t\"mixer.telemetry.resources.limits.cpu\": pulumi.Any(\"4800m\"),\n\t\t\t\t\"mixer.telemetry.resources.limits.memory\": pulumi.Any(\"4096Mi\"),\n\t\t\t\t\"mixer.telemetry.resources.requests.cpu\": pulumi.Any(\"1000m\"),\n\t\t\t\t\"mixer.telemetry.resources.requests.memory\": pulumi.Any(\"1024Mi\"),\n\t\t\t\t\"mtls.enabled\": pulumi.Any(false),\n\t\t\t\t\"nodeagent.enabled\": pulumi.Any(false),\n\t\t\t\t\"pilot.enabled\": pulumi.Any(true),\n\t\t\t\t\"pilot.resources.limits.cpu\": pulumi.Any(\"1000m\"),\n\t\t\t\t\"pilot.resources.limits.memory\": pulumi.Any(\"4096Mi\"),\n\t\t\t\t\"pilot.resources.requests.cpu\": pulumi.Any(\"500m\"),\n\t\t\t\t\"pilot.resources.requests.memory\": pulumi.Any(\"2048Mi\"),\n\t\t\t\t\"pilot.traceSampling\": pulumi.Any(\"1\"),\n\t\t\t\t\"security.enabled\": pulumi.Any(true),\n\t\t\t\t\"sidecarInjectorWebhook.enabled\": pulumi.Any(true),\n\t\t\t\t\"tracing.enabled\": pulumi.Any(true),\n\t\t\t\t\"tracing.jaeger.resources.limits.cpu\": pulumi.Any(\"500m\"),\n\t\t\t\t\"tracing.jaeger.resources.limits.memory\": pulumi.Any(\"1024Mi\"),\n\t\t\t\t\"tracing.jaeger.resources.requests.cpu\": pulumi.Any(\"100m\"),\n\t\t\t\t\"tracing.jaeger.resources.requests.memory\": pulumi.Any(\"100Mi\"),\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.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigNetworkArgs;\nimport com.pulumi.rancher2.inputs.ClusterClusterMonitoringInputArgs;\nimport com.pulumi.rancher2.ClusterSync;\nimport com.pulumi.rancher2.ClusterSyncArgs;\nimport com.pulumi.rancher2.Namespace;\nimport com.pulumi.rancher2.NamespaceArgs;\nimport com.pulumi.rancher2.App;\nimport com.pulumi.rancher2.AppArgs;\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 // Create a new rancher2 RKE Cluster\n var foo_custom = new Cluster(\"foo-custom\", ClusterArgs.builder()\n .name(\"foo-custom\")\n .description(\"Foo rancher2 custom cluster\")\n .rkeConfig(ClusterRkeConfigArgs.builder()\n .network(ClusterRkeConfigNetworkArgs.builder()\n .plugin(\"canal\")\n .build())\n .build())\n .enableClusterMonitoring(true)\n .clusterMonitoringInput(ClusterClusterMonitoringInputArgs.builder()\n .answers(Map.ofEntries(\n Map.entry(\"exporter-kubelets.https\", true),\n Map.entry(\"exporter-node.enabled\", true),\n Map.entry(\"exporter-node.ports.metrics.port\", 9796),\n Map.entry(\"exporter-node.resources.limits.cpu\", \"200m\"),\n Map.entry(\"exporter-node.resources.limits.memory\", \"200Mi\"),\n Map.entry(\"grafana.persistence.enabled\", false),\n Map.entry(\"grafana.persistence.size\", \"10Gi\"),\n Map.entry(\"grafana.persistence.storageClass\", \"default\"),\n Map.entry(\"operator.resources.limits.memory\", \"500Mi\"),\n Map.entry(\"prometheus.persistence.enabled\", \"false\"),\n Map.entry(\"prometheus.persistence.size\", \"50Gi\"),\n Map.entry(\"prometheus.persistence.storageClass\", \"default\"),\n Map.entry(\"prometheus.persistent.useReleaseName\", \"true\"),\n Map.entry(\"prometheus.resources.core.limits.cpu\", \"1000m\"),\n Map.entry(\"prometheus.resources.core.limits.memory\", \"1500Mi\"),\n Map.entry(\"prometheus.resources.core.requests.cpu\", \"750m\"),\n Map.entry(\"prometheus.resources.core.requests.memory\", \"750Mi\"),\n Map.entry(\"prometheus.retention\", \"12h\")\n ))\n .version(\"0.1.0\")\n .build())\n .build());\n\n // Create a new rancher2 Cluster Sync for foo-custom cluster\n var foo_customClusterSync = new ClusterSync(\"foo-customClusterSync\", ClusterSyncArgs.builder()\n .clusterId(foo_custom.id())\n .waitMonitoring(foo_custom.enableClusterMonitoring())\n .build());\n\n // Create a new rancher2 Namespace\n var foo_istio = new Namespace(\"foo-istio\", NamespaceArgs.builder()\n .name(\"istio-system\")\n .projectId(foo_customClusterSync.systemProjectId())\n .description(\"istio namespace\")\n .build());\n\n // Create a new rancher2 App deploying istio (should wait until monitoring is up and running)\n var istio = new App(\"istio\", AppArgs.builder()\n .catalogName(\"system-library\")\n .name(\"cluster-istio\")\n .description(\"Terraform app acceptance test\")\n .projectId(foo_istio.projectId())\n .templateName(\"rancher-istio\")\n .templateVersion(\"0.1.1\")\n .targetNamespace(foo_istio.id())\n .answers(Map.ofEntries(\n Map.entry(\"certmanager.enabled\", false),\n Map.entry(\"enableCRDs\", true),\n Map.entry(\"galley.enabled\", true),\n Map.entry(\"gateways.enabled\", false),\n Map.entry(\"gateways.istio-ingressgateway.resources.limits.cpu\", \"2000m\"),\n Map.entry(\"gateways.istio-ingressgateway.resources.limits.memory\", \"1024Mi\"),\n Map.entry(\"gateways.istio-ingressgateway.resources.requests.cpu\", \"100m\"),\n Map.entry(\"gateways.istio-ingressgateway.resources.requests.memory\", \"128Mi\"),\n Map.entry(\"gateways.istio-ingressgateway.type\", \"NodePort\"),\n Map.entry(\"global.monitoring.type\", \"cluster-monitoring\"),\n Map.entry(\"global.rancher.clusterId\", foo_customClusterSync.clusterId()),\n Map.entry(\"istio_cni.enabled\", \"false\"),\n Map.entry(\"istiocoredns.enabled\", \"false\"),\n Map.entry(\"kiali.enabled\", \"true\"),\n Map.entry(\"mixer.enabled\", \"true\"),\n Map.entry(\"mixer.policy.enabled\", \"true\"),\n Map.entry(\"mixer.policy.resources.limits.cpu\", \"4800m\"),\n Map.entry(\"mixer.policy.resources.limits.memory\", \"4096Mi\"),\n Map.entry(\"mixer.policy.resources.requests.cpu\", \"1000m\"),\n Map.entry(\"mixer.policy.resources.requests.memory\", \"1024Mi\"),\n Map.entry(\"mixer.telemetry.resources.limits.cpu\", \"4800m\"),\n Map.entry(\"mixer.telemetry.resources.limits.memory\", \"4096Mi\"),\n Map.entry(\"mixer.telemetry.resources.requests.cpu\", \"1000m\"),\n Map.entry(\"mixer.telemetry.resources.requests.memory\", \"1024Mi\"),\n Map.entry(\"mtls.enabled\", false),\n Map.entry(\"nodeagent.enabled\", false),\n Map.entry(\"pilot.enabled\", true),\n Map.entry(\"pilot.resources.limits.cpu\", \"1000m\"),\n Map.entry(\"pilot.resources.limits.memory\", \"4096Mi\"),\n Map.entry(\"pilot.resources.requests.cpu\", \"500m\"),\n Map.entry(\"pilot.resources.requests.memory\", \"2048Mi\"),\n Map.entry(\"pilot.traceSampling\", \"1\"),\n Map.entry(\"security.enabled\", true),\n Map.entry(\"sidecarInjectorWebhook.enabled\", true),\n Map.entry(\"tracing.enabled\", true),\n Map.entry(\"tracing.jaeger.resources.limits.cpu\", \"500m\"),\n Map.entry(\"tracing.jaeger.resources.limits.memory\", \"1024Mi\"),\n Map.entry(\"tracing.jaeger.resources.requests.cpu\", \"100m\"),\n Map.entry(\"tracing.jaeger.resources.requests.memory\", \"100Mi\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Create a new rancher2 RKE Cluster\n foo-custom:\n type: rancher2:Cluster\n properties:\n name: foo-custom\n description: Foo rancher2 custom cluster\n rkeConfig:\n network:\n plugin: canal\n enableClusterMonitoring: true\n clusterMonitoringInput:\n answers:\n exporter-kubelets.https: true\n exporter-node.enabled: true\n exporter-node.ports.metrics.port: 9796\n exporter-node.resources.limits.cpu: 200m\n exporter-node.resources.limits.memory: 200Mi\n grafana.persistence.enabled: false\n grafana.persistence.size: 10Gi\n grafana.persistence.storageClass: default\n operator.resources.limits.memory: 500Mi\n prometheus.persistence.enabled: 'false'\n prometheus.persistence.size: 50Gi\n prometheus.persistence.storageClass: default\n prometheus.persistent.useReleaseName: 'true'\n prometheus.resources.core.limits.cpu: 1000m\n prometheus.resources.core.limits.memory: 1500Mi\n prometheus.resources.core.requests.cpu: 750m\n prometheus.resources.core.requests.memory: 750Mi\n prometheus.retention: 12h\n version: 0.1.0\n # Create a new rancher2 Cluster Sync for foo-custom cluster\n foo-customClusterSync:\n type: rancher2:ClusterSync\n name: foo-custom\n properties:\n clusterId: ${[\"foo-custom\"].id}\n waitMonitoring: ${[\"foo-custom\"].enableClusterMonitoring}\n # Create a new rancher2 Namespace\n foo-istio:\n type: rancher2:Namespace\n properties:\n name: istio-system\n projectId: ${[\"foo-customClusterSync\"].systemProjectId}\n description: istio namespace\n # Create a new rancher2 App deploying istio (should wait until monitoring is up and running)\n istio:\n type: rancher2:App\n properties:\n catalogName: system-library\n name: cluster-istio\n description: Terraform app acceptance test\n projectId: ${[\"foo-istio\"].projectId}\n templateName: rancher-istio\n templateVersion: 0.1.1\n targetNamespace: ${[\"foo-istio\"].id}\n answers:\n certmanager.enabled: false\n enableCRDs: true\n galley.enabled: true\n gateways.enabled: false\n gateways.istio-ingressgateway.resources.limits.cpu: 2000m\n gateways.istio-ingressgateway.resources.limits.memory: 1024Mi\n gateways.istio-ingressgateway.resources.requests.cpu: 100m\n gateways.istio-ingressgateway.resources.requests.memory: 128Mi\n gateways.istio-ingressgateway.type: NodePort\n global.monitoring.type: cluster-monitoring\n global.rancher.clusterId: ${[\"foo-customClusterSync\"].clusterId}\n istio_cni.enabled: 'false'\n istiocoredns.enabled: 'false'\n kiali.enabled: 'true'\n mixer.enabled: 'true'\n mixer.policy.enabled: 'true'\n mixer.policy.resources.limits.cpu: 4800m\n mixer.policy.resources.limits.memory: 4096Mi\n mixer.policy.resources.requests.cpu: 1000m\n mixer.policy.resources.requests.memory: 1024Mi\n mixer.telemetry.resources.limits.cpu: 4800m\n mixer.telemetry.resources.limits.memory: 4096Mi\n mixer.telemetry.resources.requests.cpu: 1000m\n mixer.telemetry.resources.requests.memory: 1024Mi\n mtls.enabled: false\n nodeagent.enabled: false\n pilot.enabled: true\n pilot.resources.limits.cpu: 1000m\n pilot.resources.limits.memory: 4096Mi\n pilot.resources.requests.cpu: 500m\n pilot.resources.requests.memory: 2048Mi\n pilot.traceSampling: '1'\n security.enabled: true\n sidecarInjectorWebhook.enabled: true\n tracing.enabled: true\n tracing.jaeger.resources.limits.cpu: 500m\n tracing.jaeger.resources.limits.memory: 1024Mi\n tracing.jaeger.resources.requests.cpu: 100m\n tracing.jaeger.resources.requests.memory: 100Mi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Rancher v2 RKE cluster assigning a node pool (overlapped planes)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\n// Create a new rancher2 RKE Cluster\nconst foo_custom = new rancher2.Cluster(\"foo-custom\", {\n name: \"foo-custom\",\n description: \"Foo rancher2 custom cluster\",\n rkeConfig: {\n network: {\n plugin: \"canal\",\n },\n },\n});\n// Create a new rancher2 Node Template\nconst foo = new rancher2.NodeTemplate(\"foo\", {\n name: \"foo\",\n description: \"foo test\",\n amazonec2Config: {\n accessKey: \"\u003cAWS_ACCESS_KEY\u003e\",\n secretKey: \"\u003cAWS_SECRET_KEY\u003e\",\n ami: \"\u003cAMI_ID\u003e\",\n region: \"\u003cREGION\u003e\",\n securityGroups: [\"\u003cAWS_SECURITY_GROUP\u003e\"],\n subnetId: \"\u003cSUBNET_ID\u003e\",\n vpcId: \"\u003cVPC_ID\u003e\",\n zone: \"\u003cZONE\u003e\",\n },\n});\n// Create a new rancher2 Node Pool\nconst fooNodePool = new rancher2.NodePool(\"foo\", {\n clusterId: foo_custom.id,\n name: \"foo\",\n hostnamePrefix: \"foo-cluster-0\",\n nodeTemplateId: foo.id,\n quantity: 3,\n controlPlane: true,\n etcd: true,\n worker: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\n# Create a new rancher2 RKE Cluster\nfoo_custom = rancher2.Cluster(\"foo-custom\",\n name=\"foo-custom\",\n description=\"Foo rancher2 custom cluster\",\n rke_config=rancher2.ClusterRkeConfigArgs(\n network=rancher2.ClusterRkeConfigNetworkArgs(\n plugin=\"canal\",\n ),\n ))\n# Create a new rancher2 Node Template\nfoo = rancher2.NodeTemplate(\"foo\",\n name=\"foo\",\n description=\"foo test\",\n amazonec2_config=rancher2.NodeTemplateAmazonec2ConfigArgs(\n access_key=\"\u003cAWS_ACCESS_KEY\u003e\",\n secret_key=\"\u003cAWS_SECRET_KEY\u003e\",\n ami=\"\u003cAMI_ID\u003e\",\n region=\"\u003cREGION\u003e\",\n security_groups=[\"\u003cAWS_SECURITY_GROUP\u003e\"],\n subnet_id=\"\u003cSUBNET_ID\u003e\",\n vpc_id=\"\u003cVPC_ID\u003e\",\n zone=\"\u003cZONE\u003e\",\n ))\n# Create a new rancher2 Node Pool\nfoo_node_pool = rancher2.NodePool(\"foo\",\n cluster_id=foo_custom.id,\n name=\"foo\",\n hostname_prefix=\"foo-cluster-0\",\n node_template_id=foo.id,\n quantity=3,\n control_plane=True,\n etcd=True,\n worker=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Create a new rancher2 RKE Cluster\n var foo_custom = new Rancher2.Cluster(\"foo-custom\", new()\n {\n Name = \"foo-custom\",\n Description = \"Foo rancher2 custom cluster\",\n RkeConfig = new Rancher2.Inputs.ClusterRkeConfigArgs\n {\n Network = new Rancher2.Inputs.ClusterRkeConfigNetworkArgs\n {\n Plugin = \"canal\",\n },\n },\n });\n\n // Create a new rancher2 Node Template\n var foo = new Rancher2.NodeTemplate(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"foo test\",\n Amazonec2Config = new Rancher2.Inputs.NodeTemplateAmazonec2ConfigArgs\n {\n AccessKey = \"\u003cAWS_ACCESS_KEY\u003e\",\n SecretKey = \"\u003cAWS_SECRET_KEY\u003e\",\n Ami = \"\u003cAMI_ID\u003e\",\n Region = \"\u003cREGION\u003e\",\n SecurityGroups = new[]\n {\n \"\u003cAWS_SECURITY_GROUP\u003e\",\n },\n SubnetId = \"\u003cSUBNET_ID\u003e\",\n VpcId = \"\u003cVPC_ID\u003e\",\n Zone = \"\u003cZONE\u003e\",\n },\n });\n\n // Create a new rancher2 Node Pool\n var fooNodePool = new Rancher2.NodePool(\"foo\", new()\n {\n ClusterId = foo_custom.Id,\n Name = \"foo\",\n HostnamePrefix = \"foo-cluster-0\",\n NodeTemplateId = foo.Id,\n Quantity = 3,\n ControlPlane = true,\n Etcd = true,\n Worker = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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// Create a new rancher2 RKE Cluster\n\t\t_, err := rancher2.NewCluster(ctx, \"foo-custom\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo-custom\"),\n\t\t\tDescription: pulumi.String(\"Foo rancher2 custom cluster\"),\n\t\t\tRkeConfig: \u0026rancher2.ClusterRkeConfigArgs{\n\t\t\t\tNetwork: \u0026rancher2.ClusterRkeConfigNetworkArgs{\n\t\t\t\t\tPlugin: pulumi.String(\"canal\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new rancher2 Node Template\n\t\tfoo, err := rancher2.NewNodeTemplate(ctx, \"foo\", \u0026rancher2.NodeTemplateArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"foo test\"),\n\t\t\tAmazonec2Config: \u0026rancher2.NodeTemplateAmazonec2ConfigArgs{\n\t\t\t\tAccessKey: pulumi.String(\"\u003cAWS_ACCESS_KEY\u003e\"),\n\t\t\t\tSecretKey: pulumi.String(\"\u003cAWS_SECRET_KEY\u003e\"),\n\t\t\t\tAmi: pulumi.String(\"\u003cAMI_ID\u003e\"),\n\t\t\t\tRegion: pulumi.String(\"\u003cREGION\u003e\"),\n\t\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"\u003cAWS_SECURITY_GROUP\u003e\"),\n\t\t\t\t},\n\t\t\t\tSubnetId: pulumi.String(\"\u003cSUBNET_ID\u003e\"),\n\t\t\t\tVpcId: pulumi.String(\"\u003cVPC_ID\u003e\"),\n\t\t\t\tZone: pulumi.String(\"\u003cZONE\u003e\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new rancher2 Node Pool\n\t\t_, err = rancher2.NewNodePool(ctx, \"foo\", \u0026rancher2.NodePoolArgs{\n\t\t\tClusterId: foo_custom.ID(),\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tHostnamePrefix: pulumi.String(\"foo-cluster-0\"),\n\t\t\tNodeTemplateId: foo.ID(),\n\t\t\tQuantity: pulumi.Int(3),\n\t\t\tControlPlane: pulumi.Bool(true),\n\t\t\tEtcd: pulumi.Bool(true),\n\t\t\tWorker: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigNetworkArgs;\nimport com.pulumi.rancher2.NodeTemplate;\nimport com.pulumi.rancher2.NodeTemplateArgs;\nimport com.pulumi.rancher2.inputs.NodeTemplateAmazonec2ConfigArgs;\nimport com.pulumi.rancher2.NodePool;\nimport com.pulumi.rancher2.NodePoolArgs;\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 // Create a new rancher2 RKE Cluster\n var foo_custom = new Cluster(\"foo-custom\", ClusterArgs.builder()\n .name(\"foo-custom\")\n .description(\"Foo rancher2 custom cluster\")\n .rkeConfig(ClusterRkeConfigArgs.builder()\n .network(ClusterRkeConfigNetworkArgs.builder()\n .plugin(\"canal\")\n .build())\n .build())\n .build());\n\n // Create a new rancher2 Node Template\n var foo = new NodeTemplate(\"foo\", NodeTemplateArgs.builder()\n .name(\"foo\")\n .description(\"foo test\")\n .amazonec2Config(NodeTemplateAmazonec2ConfigArgs.builder()\n .accessKey(\"\u003cAWS_ACCESS_KEY\u003e\")\n .secretKey(\"\u003cAWS_SECRET_KEY\u003e\")\n .ami(\"\u003cAMI_ID\u003e\")\n .region(\"\u003cREGION\u003e\")\n .securityGroups(\"\u003cAWS_SECURITY_GROUP\u003e\")\n .subnetId(\"\u003cSUBNET_ID\u003e\")\n .vpcId(\"\u003cVPC_ID\u003e\")\n .zone(\"\u003cZONE\u003e\")\n .build())\n .build());\n\n // Create a new rancher2 Node Pool\n var fooNodePool = new NodePool(\"fooNodePool\", NodePoolArgs.builder()\n .clusterId(foo_custom.id())\n .name(\"foo\")\n .hostnamePrefix(\"foo-cluster-0\")\n .nodeTemplateId(foo.id())\n .quantity(3)\n .controlPlane(true)\n .etcd(true)\n .worker(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Create a new rancher2 RKE Cluster\n foo-custom:\n type: rancher2:Cluster\n properties:\n name: foo-custom\n description: Foo rancher2 custom cluster\n rkeConfig:\n network:\n plugin: canal\n # Create a new rancher2 Node Template\n foo:\n type: rancher2:NodeTemplate\n properties:\n name: foo\n description: foo test\n amazonec2Config:\n accessKey: \u003cAWS_ACCESS_KEY\u003e\n secretKey: \u003cAWS_SECRET_KEY\u003e\n ami: \u003cAMI_ID\u003e\n region: \u003cREGION\u003e\n securityGroups:\n - \u003cAWS_SECURITY_GROUP\u003e\n subnetId: \u003cSUBNET_ID\u003e\n vpcId: \u003cVPC_ID\u003e\n zone: \u003cZONE\u003e\n # Create a new rancher2 Node Pool\n fooNodePool:\n type: rancher2:NodePool\n name: foo\n properties:\n clusterId: ${[\"foo-custom\"].id}\n name: foo\n hostnamePrefix: foo-cluster-0\n nodeTemplateId: ${foo.id}\n quantity: 3\n controlPlane: true\n etcd: true\n worker: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Rancher v2 RKE cluster from template. For Rancher v2.3.x and above.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\n// Create a new rancher2 cluster template\nconst foo = new rancher2.ClusterTemplate(\"foo\", {\n name: \"foo\",\n members: [{\n accessType: \"owner\",\n userPrincipalId: \"local://user-XXXXX\",\n }],\n templateRevisions: [{\n name: \"V1\",\n clusterConfig: {\n rkeConfig: {\n network: {\n plugin: \"canal\",\n },\n services: {\n etcd: {\n creation: \"6h\",\n retention: \"24h\",\n },\n },\n },\n },\n \"default\": true,\n }],\n description: \"Test cluster template v2\",\n});\n// Create a new rancher2 RKE Cluster from template\nconst fooCluster = new rancher2.Cluster(\"foo\", {\n name: \"foo\",\n clusterTemplateId: foo.id,\n clusterTemplateRevisionId: foo.templateRevisions.apply(templateRevisions =\u003e templateRevisions[0].id),\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\n# Create a new rancher2 cluster template\nfoo = rancher2.ClusterTemplate(\"foo\",\n name=\"foo\",\n members=[rancher2.ClusterTemplateMemberArgs(\n access_type=\"owner\",\n user_principal_id=\"local://user-XXXXX\",\n )],\n template_revisions=[rancher2.ClusterTemplateTemplateRevisionArgs(\n name=\"V1\",\n cluster_config=rancher2.ClusterTemplateTemplateRevisionClusterConfigArgs(\n rke_config=rancher2.ClusterTemplateTemplateRevisionClusterConfigRkeConfigArgs(\n network=rancher2.ClusterTemplateTemplateRevisionClusterConfigRkeConfigNetworkArgs(\n plugin=\"canal\",\n ),\n services=rancher2.ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesArgs(\n etcd=rancher2.ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesEtcdArgs(\n creation=\"6h\",\n retention=\"24h\",\n ),\n ),\n ),\n ),\n default=True,\n )],\n description=\"Test cluster template v2\")\n# Create a new rancher2 RKE Cluster from template\nfoo_cluster = rancher2.Cluster(\"foo\",\n name=\"foo\",\n cluster_template_id=foo.id,\n cluster_template_revision_id=foo.template_revisions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Create a new rancher2 cluster template\n var foo = new Rancher2.ClusterTemplate(\"foo\", new()\n {\n Name = \"foo\",\n Members = new[]\n {\n new Rancher2.Inputs.ClusterTemplateMemberArgs\n {\n AccessType = \"owner\",\n UserPrincipalId = \"local://user-XXXXX\",\n },\n },\n TemplateRevisions = new[]\n {\n new Rancher2.Inputs.ClusterTemplateTemplateRevisionArgs\n {\n Name = \"V1\",\n ClusterConfig = new Rancher2.Inputs.ClusterTemplateTemplateRevisionClusterConfigArgs\n {\n RkeConfig = new Rancher2.Inputs.ClusterTemplateTemplateRevisionClusterConfigRkeConfigArgs\n {\n Network = new Rancher2.Inputs.ClusterTemplateTemplateRevisionClusterConfigRkeConfigNetworkArgs\n {\n Plugin = \"canal\",\n },\n Services = new Rancher2.Inputs.ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesArgs\n {\n Etcd = new Rancher2.Inputs.ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesEtcdArgs\n {\n Creation = \"6h\",\n Retention = \"24h\",\n },\n },\n },\n },\n Default = true,\n },\n },\n Description = \"Test cluster template v2\",\n });\n\n // Create a new rancher2 RKE Cluster from template\n var fooCluster = new Rancher2.Cluster(\"foo\", new()\n {\n Name = \"foo\",\n ClusterTemplateId = foo.Id,\n ClusterTemplateRevisionId = foo.TemplateRevisions.Apply(templateRevisions =\u003e templateRevisions[0].Id),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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// Create a new rancher2 cluster template\n\t\tfoo, err := rancher2.NewClusterTemplate(ctx, \"foo\", \u0026rancher2.ClusterTemplateArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tMembers: rancher2.ClusterTemplateMemberArray{\n\t\t\t\t\u0026rancher2.ClusterTemplateMemberArgs{\n\t\t\t\t\tAccessType: pulumi.String(\"owner\"),\n\t\t\t\t\tUserPrincipalId: pulumi.String(\"local://user-XXXXX\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTemplateRevisions: rancher2.ClusterTemplateTemplateRevisionArray{\n\t\t\t\t\u0026rancher2.ClusterTemplateTemplateRevisionArgs{\n\t\t\t\t\tName: pulumi.String(\"V1\"),\n\t\t\t\t\tClusterConfig: \u0026rancher2.ClusterTemplateTemplateRevisionClusterConfigArgs{\n\t\t\t\t\t\tRkeConfig: \u0026rancher2.ClusterTemplateTemplateRevisionClusterConfigRkeConfigArgs{\n\t\t\t\t\t\t\tNetwork: \u0026rancher2.ClusterTemplateTemplateRevisionClusterConfigRkeConfigNetworkArgs{\n\t\t\t\t\t\t\t\tPlugin: pulumi.String(\"canal\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tServices: \u0026rancher2.ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesArgs{\n\t\t\t\t\t\t\t\tEtcd: \u0026rancher2.ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesEtcdArgs{\n\t\t\t\t\t\t\t\t\tCreation: pulumi.String(\"6h\"),\n\t\t\t\t\t\t\t\t\tRetention: pulumi.String(\"24h\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tDefault: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"Test cluster template v2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new rancher2 RKE Cluster from template\n\t\t_, err = rancher2.NewCluster(ctx, \"foo\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tClusterTemplateId: foo.ID(),\n\t\t\tClusterTemplateRevisionId: foo.TemplateRevisions.ApplyT(func(templateRevisions []rancher2.ClusterTemplateTemplateRevision) (*string, error) {\n\t\t\t\treturn \u0026templateRevisions[0].Id, nil\n\t\t\t}).(pulumi.StringPtrOutput),\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.rancher2.ClusterTemplate;\nimport com.pulumi.rancher2.ClusterTemplateArgs;\nimport com.pulumi.rancher2.inputs.ClusterTemplateMemberArgs;\nimport com.pulumi.rancher2.inputs.ClusterTemplateTemplateRevisionArgs;\nimport com.pulumi.rancher2.inputs.ClusterTemplateTemplateRevisionClusterConfigArgs;\nimport com.pulumi.rancher2.inputs.ClusterTemplateTemplateRevisionClusterConfigRkeConfigArgs;\nimport com.pulumi.rancher2.inputs.ClusterTemplateTemplateRevisionClusterConfigRkeConfigNetworkArgs;\nimport com.pulumi.rancher2.inputs.ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesArgs;\nimport com.pulumi.rancher2.inputs.ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesEtcdArgs;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\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 // Create a new rancher2 cluster template\n var foo = new ClusterTemplate(\"foo\", ClusterTemplateArgs.builder()\n .name(\"foo\")\n .members(ClusterTemplateMemberArgs.builder()\n .accessType(\"owner\")\n .userPrincipalId(\"local://user-XXXXX\")\n .build())\n .templateRevisions(ClusterTemplateTemplateRevisionArgs.builder()\n .name(\"V1\")\n .clusterConfig(ClusterTemplateTemplateRevisionClusterConfigArgs.builder()\n .rkeConfig(ClusterTemplateTemplateRevisionClusterConfigRkeConfigArgs.builder()\n .network(ClusterTemplateTemplateRevisionClusterConfigRkeConfigNetworkArgs.builder()\n .plugin(\"canal\")\n .build())\n .services(ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesArgs.builder()\n .etcd(ClusterTemplateTemplateRevisionClusterConfigRkeConfigServicesEtcdArgs.builder()\n .creation(\"6h\")\n .retention(\"24h\")\n .build())\n .build())\n .build())\n .build())\n .default_(true)\n .build())\n .description(\"Test cluster template v2\")\n .build());\n\n // Create a new rancher2 RKE Cluster from template\n var fooCluster = new Cluster(\"fooCluster\", ClusterArgs.builder()\n .name(\"foo\")\n .clusterTemplateId(foo.id())\n .clusterTemplateRevisionId(foo.templateRevisions().applyValue(templateRevisions -\u003e templateRevisions[0].id()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Create a new rancher2 cluster template\n foo:\n type: rancher2:ClusterTemplate\n properties:\n name: foo\n members:\n - accessType: owner\n userPrincipalId: local://user-XXXXX\n templateRevisions:\n - name: V1\n clusterConfig:\n rkeConfig:\n network:\n plugin: canal\n services:\n etcd:\n creation: 6h\n retention: 24h\n default: true\n description: Test cluster template v2\n # Create a new rancher2 RKE Cluster from template\n fooCluster:\n type: rancher2:Cluster\n name: foo\n properties:\n name: foo\n clusterTemplateId: ${foo.id}\n clusterTemplateRevisionId: ${foo.templateRevisions[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Rancher v2 RKE cluster with upgrade strategy. For Rancher v2.4.x and above.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\nconst foo = new rancher2.Cluster(\"foo\", {\n name: \"foo\",\n description: \"Terraform custom cluster\",\n rkeConfig: {\n network: {\n plugin: \"canal\",\n },\n services: {\n etcd: {\n creation: \"6h\",\n retention: \"24h\",\n },\n kubeApi: {\n auditLog: {\n enabled: true,\n configuration: {\n maxAge: 5,\n maxBackup: 5,\n maxSize: 100,\n path: \"-\",\n format: \"json\",\n policy: `apiVersion: audit.k8s.io/v1\nkind: Policy\nmetadata:\n creationTimestamp: null\nomitStages:\n- RequestReceived\nrules:\n- level: RequestResponse\n resources:\n - resources:\n - pods\n`,\n },\n },\n },\n },\n upgradeStrategy: {\n drain: true,\n maxUnavailableWorker: \"20%\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\nfoo = rancher2.Cluster(\"foo\",\n name=\"foo\",\n description=\"Terraform custom cluster\",\n rke_config=rancher2.ClusterRkeConfigArgs(\n network=rancher2.ClusterRkeConfigNetworkArgs(\n plugin=\"canal\",\n ),\n services=rancher2.ClusterRkeConfigServicesArgs(\n etcd=rancher2.ClusterRkeConfigServicesEtcdArgs(\n creation=\"6h\",\n retention=\"24h\",\n ),\n kube_api=rancher2.ClusterRkeConfigServicesKubeApiArgs(\n audit_log=rancher2.ClusterRkeConfigServicesKubeApiAuditLogArgs(\n enabled=True,\n configuration=rancher2.ClusterRkeConfigServicesKubeApiAuditLogConfigurationArgs(\n max_age=5,\n max_backup=5,\n max_size=100,\n path=\"-\",\n format=\"json\",\n policy=\"\"\"apiVersion: audit.k8s.io/v1\nkind: Policy\nmetadata:\n creationTimestamp: null\nomitStages:\n- RequestReceived\nrules:\n- level: RequestResponse\n resources:\n - resources:\n - pods\n\"\"\",\n ),\n ),\n ),\n ),\n upgrade_strategy=rancher2.ClusterRkeConfigUpgradeStrategyArgs(\n drain=True,\n max_unavailable_worker=\"20%\",\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Rancher2.Cluster(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"Terraform custom cluster\",\n RkeConfig = new Rancher2.Inputs.ClusterRkeConfigArgs\n {\n Network = new Rancher2.Inputs.ClusterRkeConfigNetworkArgs\n {\n Plugin = \"canal\",\n },\n Services = new Rancher2.Inputs.ClusterRkeConfigServicesArgs\n {\n Etcd = new Rancher2.Inputs.ClusterRkeConfigServicesEtcdArgs\n {\n Creation = \"6h\",\n Retention = \"24h\",\n },\n KubeApi = new Rancher2.Inputs.ClusterRkeConfigServicesKubeApiArgs\n {\n AuditLog = new Rancher2.Inputs.ClusterRkeConfigServicesKubeApiAuditLogArgs\n {\n Enabled = true,\n Configuration = new Rancher2.Inputs.ClusterRkeConfigServicesKubeApiAuditLogConfigurationArgs\n {\n MaxAge = 5,\n MaxBackup = 5,\n MaxSize = 100,\n Path = \"-\",\n Format = \"json\",\n Policy = @\"apiVersion: audit.k8s.io/v1\nkind: Policy\nmetadata:\n creationTimestamp: null\nomitStages:\n- RequestReceived\nrules:\n- level: RequestResponse\n resources:\n - resources:\n - pods\n\",\n },\n },\n },\n },\n UpgradeStrategy = new Rancher2.Inputs.ClusterRkeConfigUpgradeStrategyArgs\n {\n Drain = true,\n MaxUnavailableWorker = \"20%\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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 := rancher2.NewCluster(ctx, \"foo\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"Terraform custom cluster\"),\n\t\t\tRkeConfig: \u0026rancher2.ClusterRkeConfigArgs{\n\t\t\t\tNetwork: \u0026rancher2.ClusterRkeConfigNetworkArgs{\n\t\t\t\t\tPlugin: pulumi.String(\"canal\"),\n\t\t\t\t},\n\t\t\t\tServices: \u0026rancher2.ClusterRkeConfigServicesArgs{\n\t\t\t\t\tEtcd: \u0026rancher2.ClusterRkeConfigServicesEtcdArgs{\n\t\t\t\t\t\tCreation: pulumi.String(\"6h\"),\n\t\t\t\t\t\tRetention: pulumi.String(\"24h\"),\n\t\t\t\t\t},\n\t\t\t\t\tKubeApi: \u0026rancher2.ClusterRkeConfigServicesKubeApiArgs{\n\t\t\t\t\t\tAuditLog: \u0026rancher2.ClusterRkeConfigServicesKubeApiAuditLogArgs{\n\t\t\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\t\t\tConfiguration: \u0026rancher2.ClusterRkeConfigServicesKubeApiAuditLogConfigurationArgs{\n\t\t\t\t\t\t\t\tMaxAge: pulumi.Int(5),\n\t\t\t\t\t\t\t\tMaxBackup: pulumi.Int(5),\n\t\t\t\t\t\t\t\tMaxSize: pulumi.Int(100),\n\t\t\t\t\t\t\t\tPath: pulumi.String(\"-\"),\n\t\t\t\t\t\t\t\tFormat: pulumi.String(\"json\"),\n\t\t\t\t\t\t\t\tPolicy: pulumi.String(`apiVersion: audit.k8s.io/v1\nkind: Policy\nmetadata:\n creationTimestamp: null\nomitStages:\n- RequestReceived\nrules:\n- level: RequestResponse\n resources:\n - resources:\n - pods\n`),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tUpgradeStrategy: \u0026rancher2.ClusterRkeConfigUpgradeStrategyArgs{\n\t\t\t\t\tDrain: pulumi.Bool(true),\n\t\t\t\t\tMaxUnavailableWorker: pulumi.String(\"20%\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigNetworkArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigServicesArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigServicesEtcdArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigServicesKubeApiArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigServicesKubeApiAuditLogArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigServicesKubeApiAuditLogConfigurationArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigUpgradeStrategyArgs;\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 foo = new Cluster(\"foo\", ClusterArgs.builder()\n .name(\"foo\")\n .description(\"Terraform custom cluster\")\n .rkeConfig(ClusterRkeConfigArgs.builder()\n .network(ClusterRkeConfigNetworkArgs.builder()\n .plugin(\"canal\")\n .build())\n .services(ClusterRkeConfigServicesArgs.builder()\n .etcd(ClusterRkeConfigServicesEtcdArgs.builder()\n .creation(\"6h\")\n .retention(\"24h\")\n .build())\n .kubeApi(ClusterRkeConfigServicesKubeApiArgs.builder()\n .auditLog(ClusterRkeConfigServicesKubeApiAuditLogArgs.builder()\n .enabled(true)\n .configuration(ClusterRkeConfigServicesKubeApiAuditLogConfigurationArgs.builder()\n .maxAge(5)\n .maxBackup(5)\n .maxSize(100)\n .path(\"-\")\n .format(\"json\")\n .policy(\"\"\"\napiVersion: audit.k8s.io/v1\nkind: Policy\nmetadata:\n creationTimestamp: null\nomitStages:\n- RequestReceived\nrules:\n- level: RequestResponse\n resources:\n - resources:\n - pods\n \"\"\")\n .build())\n .build())\n .build())\n .build())\n .upgradeStrategy(ClusterRkeConfigUpgradeStrategyArgs.builder()\n .drain(true)\n .maxUnavailableWorker(\"20%\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: rancher2:Cluster\n properties:\n name: foo\n description: Terraform custom cluster\n rkeConfig:\n network:\n plugin: canal\n services:\n etcd:\n creation: 6h\n retention: 24h\n kubeApi:\n auditLog:\n enabled: true\n configuration:\n maxAge: 5\n maxBackup: 5\n maxSize: 100\n path: '-'\n format: json\n policy: |\n apiVersion: audit.k8s.io/v1\n kind: Policy\n metadata:\n creationTimestamp: null\n omitStages:\n - RequestReceived\n rules:\n - level: RequestResponse\n resources:\n - resources:\n - pods\n upgradeStrategy:\n drain: true\n maxUnavailableWorker: 20%\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Rancher v2 RKE cluster with cluster agent customization. For Rancher v2.7.5 and above.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\nconst foo = new rancher2.Cluster(\"foo\", {\n name: \"foo\",\n description: \"Terraform cluster with agent customization\",\n rkeConfig: {\n network: {\n plugin: \"canal\",\n },\n },\n clusterAgentDeploymentCustomizations: [{\n appendTolerations: [{\n effect: \"NoSchedule\",\n key: \"tolerate/control-plane\",\n value: \"true\",\n }],\n overrideAffinity: `{\n \"nodeAffinity\": {\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"nodeSelectorTerms\": [{\n \"matchExpressions\": [{\n \"key\": \"not.this/nodepool\",\n \"operator\": \"In\",\n \"values\": [\n \"true\"\n ]\n }]\n }]\n }\n }\n}\n`,\n overrideResourceRequirements: [{\n cpuLimit: \"800\",\n cpuRequest: \"500\",\n memoryLimit: \"800\",\n memoryRequest: \"500\",\n }],\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\nfoo = rancher2.Cluster(\"foo\",\n name=\"foo\",\n description=\"Terraform cluster with agent customization\",\n rke_config=rancher2.ClusterRkeConfigArgs(\n network=rancher2.ClusterRkeConfigNetworkArgs(\n plugin=\"canal\",\n ),\n ),\n cluster_agent_deployment_customizations=[rancher2.ClusterClusterAgentDeploymentCustomizationArgs(\n append_tolerations=[rancher2.ClusterClusterAgentDeploymentCustomizationAppendTolerationArgs(\n effect=\"NoSchedule\",\n key=\"tolerate/control-plane\",\n value=\"true\",\n )],\n override_affinity=\"\"\"{\n \"nodeAffinity\": {\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"nodeSelectorTerms\": [{\n \"matchExpressions\": [{\n \"key\": \"not.this/nodepool\",\n \"operator\": \"In\",\n \"values\": [\n \"true\"\n ]\n }]\n }]\n }\n }\n}\n\"\"\",\n override_resource_requirements=[rancher2.ClusterClusterAgentDeploymentCustomizationOverrideResourceRequirementArgs(\n cpu_limit=\"800\",\n cpu_request=\"500\",\n memory_limit=\"800\",\n memory_request=\"500\",\n )],\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Rancher2.Cluster(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"Terraform cluster with agent customization\",\n RkeConfig = new Rancher2.Inputs.ClusterRkeConfigArgs\n {\n Network = new Rancher2.Inputs.ClusterRkeConfigNetworkArgs\n {\n Plugin = \"canal\",\n },\n },\n ClusterAgentDeploymentCustomizations = new[]\n {\n new Rancher2.Inputs.ClusterClusterAgentDeploymentCustomizationArgs\n {\n AppendTolerations = new[]\n {\n new Rancher2.Inputs.ClusterClusterAgentDeploymentCustomizationAppendTolerationArgs\n {\n Effect = \"NoSchedule\",\n Key = \"tolerate/control-plane\",\n Value = \"true\",\n },\n },\n OverrideAffinity = @\"{\n \"\"nodeAffinity\"\": {\n \"\"requiredDuringSchedulingIgnoredDuringExecution\"\": {\n \"\"nodeSelectorTerms\"\": [{\n \"\"matchExpressions\"\": [{\n \"\"key\"\": \"\"not.this/nodepool\"\",\n \"\"operator\"\": \"\"In\"\",\n \"\"values\"\": [\n \"\"true\"\"\n ]\n }]\n }]\n }\n }\n}\n\",\n OverrideResourceRequirements = new[]\n {\n new Rancher2.Inputs.ClusterClusterAgentDeploymentCustomizationOverrideResourceRequirementArgs\n {\n CpuLimit = \"800\",\n CpuRequest = \"500\",\n MemoryLimit = \"800\",\n MemoryRequest = \"500\",\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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 := rancher2.NewCluster(ctx, \"foo\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"Terraform cluster with agent customization\"),\n\t\t\tRkeConfig: \u0026rancher2.ClusterRkeConfigArgs{\n\t\t\t\tNetwork: \u0026rancher2.ClusterRkeConfigNetworkArgs{\n\t\t\t\t\tPlugin: pulumi.String(\"canal\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tClusterAgentDeploymentCustomizations: rancher2.ClusterClusterAgentDeploymentCustomizationArray{\n\t\t\t\t\u0026rancher2.ClusterClusterAgentDeploymentCustomizationArgs{\n\t\t\t\t\tAppendTolerations: rancher2.ClusterClusterAgentDeploymentCustomizationAppendTolerationArray{\n\t\t\t\t\t\t\u0026rancher2.ClusterClusterAgentDeploymentCustomizationAppendTolerationArgs{\n\t\t\t\t\t\t\tEffect: pulumi.String(\"NoSchedule\"),\n\t\t\t\t\t\t\tKey: pulumi.String(\"tolerate/control-plane\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"true\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tOverrideAffinity: pulumi.String(`{\n \"nodeAffinity\": {\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"nodeSelectorTerms\": [{\n \"matchExpressions\": [{\n \"key\": \"not.this/nodepool\",\n \"operator\": \"In\",\n \"values\": [\n \"true\"\n ]\n }]\n }]\n }\n }\n}\n`),\n\t\t\t\t\tOverrideResourceRequirements: rancher2.ClusterClusterAgentDeploymentCustomizationOverrideResourceRequirementArray{\n\t\t\t\t\t\t\u0026rancher2.ClusterClusterAgentDeploymentCustomizationOverrideResourceRequirementArgs{\n\t\t\t\t\t\t\tCpuLimit: pulumi.String(\"800\"),\n\t\t\t\t\t\t\tCpuRequest: pulumi.String(\"500\"),\n\t\t\t\t\t\t\tMemoryLimit: pulumi.String(\"800\"),\n\t\t\t\t\t\t\tMemoryRequest: pulumi.String(\"500\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigNetworkArgs;\nimport com.pulumi.rancher2.inputs.ClusterClusterAgentDeploymentCustomizationArgs;\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 foo = new Cluster(\"foo\", ClusterArgs.builder()\n .name(\"foo\")\n .description(\"Terraform cluster with agent customization\")\n .rkeConfig(ClusterRkeConfigArgs.builder()\n .network(ClusterRkeConfigNetworkArgs.builder()\n .plugin(\"canal\")\n .build())\n .build())\n .clusterAgentDeploymentCustomizations(ClusterClusterAgentDeploymentCustomizationArgs.builder()\n .appendTolerations(ClusterClusterAgentDeploymentCustomizationAppendTolerationArgs.builder()\n .effect(\"NoSchedule\")\n .key(\"tolerate/control-plane\")\n .value(\"true\")\n .build())\n .overrideAffinity(\"\"\"\n{\n \"nodeAffinity\": {\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"nodeSelectorTerms\": [{\n \"matchExpressions\": [{\n \"key\": \"not.this/nodepool\",\n \"operator\": \"In\",\n \"values\": [\n \"true\"\n ]\n }]\n }]\n }\n }\n}\n \"\"\")\n .overrideResourceRequirements(ClusterClusterAgentDeploymentCustomizationOverrideResourceRequirementArgs.builder()\n .cpuLimit(\"800\")\n .cpuRequest(\"500\")\n .memoryLimit(\"800\")\n .memoryRequest(\"500\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: rancher2:Cluster\n properties:\n name: foo\n description: Terraform cluster with agent customization\n rkeConfig:\n network:\n plugin: canal\n clusterAgentDeploymentCustomizations:\n - appendTolerations:\n - effect: NoSchedule\n key: tolerate/control-plane\n value: 'true'\n overrideAffinity: |\n {\n \"nodeAffinity\": {\n \"requiredDuringSchedulingIgnoredDuringExecution\": {\n \"nodeSelectorTerms\": [{\n \"matchExpressions\": [{\n \"key\": \"not.this/nodepool\",\n \"operator\": \"In\",\n \"values\": [\n \"true\"\n ]\n }]\n }]\n }\n }\n }\n overrideResourceRequirements:\n - cpuLimit: '800'\n cpuRequest: '500'\n memoryLimit: '800'\n memoryRequest: '500'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating Rancher v2 RKE cluster with Pod Security Admission Configuration Template (PSACT). For Rancher v2.7.2 and above.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\n// Custom PSACT (if you wish to use your own)\nconst foo = new rancher2.PodSecurityAdmissionConfigurationTemplate(\"foo\", {\n name: \"custom-psact\",\n description: \"This is my custom Pod Security Admission Configuration Template\",\n defaults: {\n audit: \"restricted\",\n auditVersion: \"latest\",\n enforce: \"restricted\",\n enforceVersion: \"latest\",\n warn: \"restricted\",\n warnVersion: \"latest\",\n },\n exemptions: {\n usernames: [\"testuser\"],\n runtimeClasses: [\"testclass\"],\n namespaces: [\n \"ingress-nginx\",\n \"kube-system\",\n ],\n },\n});\nconst fooCluster = new rancher2.Cluster(\"foo\", {\n name: \"foo\",\n description: \"Terraform cluster with PSACT\",\n defaultPodSecurityAdmissionConfigurationTemplateName: \"\u003cname\u003e\",\n rkeConfig: {\n network: {\n plugin: \"canal\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\n# Custom PSACT (if you wish to use your own)\nfoo = rancher2.PodSecurityAdmissionConfigurationTemplate(\"foo\",\n name=\"custom-psact\",\n description=\"This is my custom Pod Security Admission Configuration Template\",\n defaults=rancher2.PodSecurityAdmissionConfigurationTemplateDefaultsArgs(\n audit=\"restricted\",\n audit_version=\"latest\",\n enforce=\"restricted\",\n enforce_version=\"latest\",\n warn=\"restricted\",\n warn_version=\"latest\",\n ),\n exemptions=rancher2.PodSecurityAdmissionConfigurationTemplateExemptionsArgs(\n usernames=[\"testuser\"],\n runtime_classes=[\"testclass\"],\n namespaces=[\n \"ingress-nginx\",\n \"kube-system\",\n ],\n ))\nfoo_cluster = rancher2.Cluster(\"foo\",\n name=\"foo\",\n description=\"Terraform cluster with PSACT\",\n default_pod_security_admission_configuration_template_name=\"\u003cname\u003e\",\n rke_config=rancher2.ClusterRkeConfigArgs(\n network=rancher2.ClusterRkeConfigNetworkArgs(\n plugin=\"canal\",\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Custom PSACT (if you wish to use your own)\n var foo = new Rancher2.PodSecurityAdmissionConfigurationTemplate(\"foo\", new()\n {\n Name = \"custom-psact\",\n Description = \"This is my custom Pod Security Admission Configuration Template\",\n Defaults = new Rancher2.Inputs.PodSecurityAdmissionConfigurationTemplateDefaultsArgs\n {\n Audit = \"restricted\",\n AuditVersion = \"latest\",\n Enforce = \"restricted\",\n EnforceVersion = \"latest\",\n Warn = \"restricted\",\n WarnVersion = \"latest\",\n },\n Exemptions = new Rancher2.Inputs.PodSecurityAdmissionConfigurationTemplateExemptionsArgs\n {\n Usernames = new[]\n {\n \"testuser\",\n },\n RuntimeClasses = new[]\n {\n \"testclass\",\n },\n Namespaces = new[]\n {\n \"ingress-nginx\",\n \"kube-system\",\n },\n },\n });\n\n var fooCluster = new Rancher2.Cluster(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"Terraform cluster with PSACT\",\n DefaultPodSecurityAdmissionConfigurationTemplateName = \"\u003cname\u003e\",\n RkeConfig = new Rancher2.Inputs.ClusterRkeConfigArgs\n {\n Network = new Rancher2.Inputs.ClusterRkeConfigNetworkArgs\n {\n Plugin = \"canal\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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// Custom PSACT (if you wish to use your own)\n\t\t_, err := rancher2.NewPodSecurityAdmissionConfigurationTemplate(ctx, \"foo\", \u0026rancher2.PodSecurityAdmissionConfigurationTemplateArgs{\n\t\t\tName: pulumi.String(\"custom-psact\"),\n\t\t\tDescription: pulumi.String(\"This is my custom Pod Security Admission Configuration Template\"),\n\t\t\tDefaults: \u0026rancher2.PodSecurityAdmissionConfigurationTemplateDefaultsArgs{\n\t\t\t\tAudit: pulumi.String(\"restricted\"),\n\t\t\t\tAuditVersion: pulumi.String(\"latest\"),\n\t\t\t\tEnforce: pulumi.String(\"restricted\"),\n\t\t\t\tEnforceVersion: pulumi.String(\"latest\"),\n\t\t\t\tWarn: pulumi.String(\"restricted\"),\n\t\t\t\tWarnVersion: pulumi.String(\"latest\"),\n\t\t\t},\n\t\t\tExemptions: \u0026rancher2.PodSecurityAdmissionConfigurationTemplateExemptionsArgs{\n\t\t\t\tUsernames: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"testuser\"),\n\t\t\t\t},\n\t\t\t\tRuntimeClasses: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"testclass\"),\n\t\t\t\t},\n\t\t\t\tNamespaces: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"ingress-nginx\"),\n\t\t\t\t\tpulumi.String(\"kube-system\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rancher2.NewCluster(ctx, \"foo\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"Terraform cluster with PSACT\"),\n\t\t\tDefaultPodSecurityAdmissionConfigurationTemplateName: pulumi.String(\"\u003cname\u003e\"),\n\t\t\tRkeConfig: \u0026rancher2.ClusterRkeConfigArgs{\n\t\t\t\tNetwork: \u0026rancher2.ClusterRkeConfigNetworkArgs{\n\t\t\t\t\tPlugin: pulumi.String(\"canal\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rancher2.PodSecurityAdmissionConfigurationTemplate;\nimport com.pulumi.rancher2.PodSecurityAdmissionConfigurationTemplateArgs;\nimport com.pulumi.rancher2.inputs.PodSecurityAdmissionConfigurationTemplateDefaultsArgs;\nimport com.pulumi.rancher2.inputs.PodSecurityAdmissionConfigurationTemplateExemptionsArgs;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigArgs;\nimport com.pulumi.rancher2.inputs.ClusterRkeConfigNetworkArgs;\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 // Custom PSACT (if you wish to use your own)\n var foo = new PodSecurityAdmissionConfigurationTemplate(\"foo\", PodSecurityAdmissionConfigurationTemplateArgs.builder()\n .name(\"custom-psact\")\n .description(\"This is my custom Pod Security Admission Configuration Template\")\n .defaults(PodSecurityAdmissionConfigurationTemplateDefaultsArgs.builder()\n .audit(\"restricted\")\n .auditVersion(\"latest\")\n .enforce(\"restricted\")\n .enforceVersion(\"latest\")\n .warn(\"restricted\")\n .warnVersion(\"latest\")\n .build())\n .exemptions(PodSecurityAdmissionConfigurationTemplateExemptionsArgs.builder()\n .usernames(\"testuser\")\n .runtimeClasses(\"testclass\")\n .namespaces( \n \"ingress-nginx\",\n \"kube-system\")\n .build())\n .build());\n\n var fooCluster = new Cluster(\"fooCluster\", ClusterArgs.builder()\n .name(\"foo\")\n .description(\"Terraform cluster with PSACT\")\n .defaultPodSecurityAdmissionConfigurationTemplateName(\"\u003cname\u003e\")\n .rkeConfig(ClusterRkeConfigArgs.builder()\n .network(ClusterRkeConfigNetworkArgs.builder()\n .plugin(\"canal\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Custom PSACT (if you wish to use your own)\n foo:\n type: rancher2:PodSecurityAdmissionConfigurationTemplate\n properties:\n name: custom-psact\n description: This is my custom Pod Security Admission Configuration Template\n defaults:\n audit: restricted\n auditVersion: latest\n enforce: restricted\n enforceVersion: latest\n warn: restricted\n warnVersion: latest\n exemptions:\n usernames:\n - testuser\n runtimeClasses:\n - testclass\n namespaces:\n - ingress-nginx\n - kube-system\n fooCluster:\n type: rancher2:Cluster\n name: foo\n properties:\n name: foo\n description: Terraform cluster with PSACT\n defaultPodSecurityAdmissionConfigurationTemplateName: \u003cname\u003e\n rkeConfig:\n network:\n plugin: canal\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Importing EKS cluster to Rancher v2, using `eks_config_v2`. For Rancher v2.5.x and above.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\nconst foo = new rancher2.CloudCredential(\"foo\", {\n name: \"foo\",\n description: \"foo test\",\n amazonec2CredentialConfig: {\n accessKey: \"\u003caws-access-key\u003e\",\n secretKey: \"\u003caws-secret-key\u003e\",\n },\n});\nconst fooCluster = new rancher2.Cluster(\"foo\", {\n name: \"foo\",\n description: \"Terraform EKS cluster\",\n eksConfigV2: {\n cloudCredentialId: foo.id,\n name: \"\u003ccluster-name\u003e\",\n region: \"\u003ceks-region\u003e\",\n imported: true,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\nfoo = rancher2.CloudCredential(\"foo\",\n name=\"foo\",\n description=\"foo test\",\n amazonec2_credential_config=rancher2.CloudCredentialAmazonec2CredentialConfigArgs(\n access_key=\"\u003caws-access-key\u003e\",\n secret_key=\"\u003caws-secret-key\u003e\",\n ))\nfoo_cluster = rancher2.Cluster(\"foo\",\n name=\"foo\",\n description=\"Terraform EKS cluster\",\n eks_config_v2=rancher2.ClusterEksConfigV2Args(\n cloud_credential_id=foo.id,\n name=\"\u003ccluster-name\u003e\",\n region=\"\u003ceks-region\u003e\",\n imported=True,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Rancher2.CloudCredential(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"foo test\",\n Amazonec2CredentialConfig = new Rancher2.Inputs.CloudCredentialAmazonec2CredentialConfigArgs\n {\n AccessKey = \"\u003caws-access-key\u003e\",\n SecretKey = \"\u003caws-secret-key\u003e\",\n },\n });\n\n var fooCluster = new Rancher2.Cluster(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"Terraform EKS cluster\",\n EksConfigV2 = new Rancher2.Inputs.ClusterEksConfigV2Args\n {\n CloudCredentialId = foo.Id,\n Name = \"\u003ccluster-name\u003e\",\n Region = \"\u003ceks-region\u003e\",\n Imported = true,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfoo, err := rancher2.NewCloudCredential(ctx, \"foo\", \u0026rancher2.CloudCredentialArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"foo test\"),\n\t\t\tAmazonec2CredentialConfig: \u0026rancher2.CloudCredentialAmazonec2CredentialConfigArgs{\n\t\t\t\tAccessKey: pulumi.String(\"\u003caws-access-key\u003e\"),\n\t\t\t\tSecretKey: pulumi.String(\"\u003caws-secret-key\u003e\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rancher2.NewCluster(ctx, \"foo\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"Terraform EKS cluster\"),\n\t\t\tEksConfigV2: \u0026rancher2.ClusterEksConfigV2Args{\n\t\t\t\tCloudCredentialId: foo.ID(),\n\t\t\t\tName: pulumi.String(\"\u003ccluster-name\u003e\"),\n\t\t\t\tRegion: pulumi.String(\"\u003ceks-region\u003e\"),\n\t\t\t\tImported: pulumi.Bool(true),\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.rancher2.CloudCredential;\nimport com.pulumi.rancher2.CloudCredentialArgs;\nimport com.pulumi.rancher2.inputs.CloudCredentialAmazonec2CredentialConfigArgs;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterEksConfigV2Args;\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 foo = new CloudCredential(\"foo\", CloudCredentialArgs.builder()\n .name(\"foo\")\n .description(\"foo test\")\n .amazonec2CredentialConfig(CloudCredentialAmazonec2CredentialConfigArgs.builder()\n .accessKey(\"\u003caws-access-key\u003e\")\n .secretKey(\"\u003caws-secret-key\u003e\")\n .build())\n .build());\n\n var fooCluster = new Cluster(\"fooCluster\", ClusterArgs.builder()\n .name(\"foo\")\n .description(\"Terraform EKS cluster\")\n .eksConfigV2(ClusterEksConfigV2Args.builder()\n .cloudCredentialId(foo.id())\n .name(\"\u003ccluster-name\u003e\")\n .region(\"\u003ceks-region\u003e\")\n .imported(true)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: rancher2:CloudCredential\n properties:\n name: foo\n description: foo test\n amazonec2CredentialConfig:\n accessKey: \u003caws-access-key\u003e\n secretKey: \u003caws-secret-key\u003e\n fooCluster:\n type: rancher2:Cluster\n name: foo\n properties:\n name: foo\n description: Terraform EKS cluster\n eksConfigV2:\n cloudCredentialId: ${foo.id}\n name: \u003ccluster-name\u003e\n region: \u003ceks-region\u003e\n imported: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating EKS cluster from Rancher v2, using `eks_config_v2`. For Rancher v2.5.x and above.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\nconst foo = new rancher2.CloudCredential(\"foo\", {\n name: \"foo\",\n description: \"foo test\",\n amazonec2CredentialConfig: {\n accessKey: \"\u003caws-access-key\u003e\",\n secretKey: \"\u003caws-secret-key\u003e\",\n },\n});\nconst fooCluster = new rancher2.Cluster(\"foo\", {\n name: \"foo\",\n description: \"Terraform EKS cluster\",\n eksConfigV2: {\n cloudCredentialId: foo.id,\n region: \"\u003cEKS_REGION\u003e\",\n kubernetesVersion: \"1.24\",\n loggingTypes: [\n \"audit\",\n \"api\",\n ],\n nodeGroups: [\n {\n name: \"node_group1\",\n instanceType: \"t3.medium\",\n desiredSize: 3,\n maxSize: 5,\n },\n {\n name: \"node_group2\",\n instanceType: \"m5.xlarge\",\n desiredSize: 2,\n maxSize: 3,\n nodeRole: \"arn:aws:iam::role/test-NodeInstanceRole\",\n },\n ],\n privateAccess: true,\n publicAccess: false,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\nfoo = rancher2.CloudCredential(\"foo\",\n name=\"foo\",\n description=\"foo test\",\n amazonec2_credential_config=rancher2.CloudCredentialAmazonec2CredentialConfigArgs(\n access_key=\"\u003caws-access-key\u003e\",\n secret_key=\"\u003caws-secret-key\u003e\",\n ))\nfoo_cluster = rancher2.Cluster(\"foo\",\n name=\"foo\",\n description=\"Terraform EKS cluster\",\n eks_config_v2=rancher2.ClusterEksConfigV2Args(\n cloud_credential_id=foo.id,\n region=\"\u003cEKS_REGION\u003e\",\n kubernetes_version=\"1.24\",\n logging_types=[\n \"audit\",\n \"api\",\n ],\n node_groups=[\n rancher2.ClusterEksConfigV2NodeGroupArgs(\n name=\"node_group1\",\n instance_type=\"t3.medium\",\n desired_size=3,\n max_size=5,\n ),\n rancher2.ClusterEksConfigV2NodeGroupArgs(\n name=\"node_group2\",\n instance_type=\"m5.xlarge\",\n desired_size=2,\n max_size=3,\n node_role=\"arn:aws:iam::role/test-NodeInstanceRole\",\n ),\n ],\n private_access=True,\n public_access=False,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Rancher2.CloudCredential(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"foo test\",\n Amazonec2CredentialConfig = new Rancher2.Inputs.CloudCredentialAmazonec2CredentialConfigArgs\n {\n AccessKey = \"\u003caws-access-key\u003e\",\n SecretKey = \"\u003caws-secret-key\u003e\",\n },\n });\n\n var fooCluster = new Rancher2.Cluster(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"Terraform EKS cluster\",\n EksConfigV2 = new Rancher2.Inputs.ClusterEksConfigV2Args\n {\n CloudCredentialId = foo.Id,\n Region = \"\u003cEKS_REGION\u003e\",\n KubernetesVersion = \"1.24\",\n LoggingTypes = new[]\n {\n \"audit\",\n \"api\",\n },\n NodeGroups = new[]\n {\n new Rancher2.Inputs.ClusterEksConfigV2NodeGroupArgs\n {\n Name = \"node_group1\",\n InstanceType = \"t3.medium\",\n DesiredSize = 3,\n MaxSize = 5,\n },\n new Rancher2.Inputs.ClusterEksConfigV2NodeGroupArgs\n {\n Name = \"node_group2\",\n InstanceType = \"m5.xlarge\",\n DesiredSize = 2,\n MaxSize = 3,\n NodeRole = \"arn:aws:iam::role/test-NodeInstanceRole\",\n },\n },\n PrivateAccess = true,\n PublicAccess = false,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfoo, err := rancher2.NewCloudCredential(ctx, \"foo\", \u0026rancher2.CloudCredentialArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"foo test\"),\n\t\t\tAmazonec2CredentialConfig: \u0026rancher2.CloudCredentialAmazonec2CredentialConfigArgs{\n\t\t\t\tAccessKey: pulumi.String(\"\u003caws-access-key\u003e\"),\n\t\t\t\tSecretKey: pulumi.String(\"\u003caws-secret-key\u003e\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rancher2.NewCluster(ctx, \"foo\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"Terraform EKS cluster\"),\n\t\t\tEksConfigV2: \u0026rancher2.ClusterEksConfigV2Args{\n\t\t\t\tCloudCredentialId: foo.ID(),\n\t\t\t\tRegion: pulumi.String(\"\u003cEKS_REGION\u003e\"),\n\t\t\t\tKubernetesVersion: pulumi.String(\"1.24\"),\n\t\t\t\tLoggingTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"audit\"),\n\t\t\t\t\tpulumi.String(\"api\"),\n\t\t\t\t},\n\t\t\t\tNodeGroups: rancher2.ClusterEksConfigV2NodeGroupArray{\n\t\t\t\t\t\u0026rancher2.ClusterEksConfigV2NodeGroupArgs{\n\t\t\t\t\t\tName: pulumi.String(\"node_group1\"),\n\t\t\t\t\t\tInstanceType: pulumi.String(\"t3.medium\"),\n\t\t\t\t\t\tDesiredSize: pulumi.Int(3),\n\t\t\t\t\t\tMaxSize: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026rancher2.ClusterEksConfigV2NodeGroupArgs{\n\t\t\t\t\t\tName: pulumi.String(\"node_group2\"),\n\t\t\t\t\t\tInstanceType: pulumi.String(\"m5.xlarge\"),\n\t\t\t\t\t\tDesiredSize: pulumi.Int(2),\n\t\t\t\t\t\tMaxSize: pulumi.Int(3),\n\t\t\t\t\t\tNodeRole: pulumi.String(\"arn:aws:iam::role/test-NodeInstanceRole\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tPrivateAccess: pulumi.Bool(true),\n\t\t\t\tPublicAccess: pulumi.Bool(false),\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.rancher2.CloudCredential;\nimport com.pulumi.rancher2.CloudCredentialArgs;\nimport com.pulumi.rancher2.inputs.CloudCredentialAmazonec2CredentialConfigArgs;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterEksConfigV2Args;\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 foo = new CloudCredential(\"foo\", CloudCredentialArgs.builder()\n .name(\"foo\")\n .description(\"foo test\")\n .amazonec2CredentialConfig(CloudCredentialAmazonec2CredentialConfigArgs.builder()\n .accessKey(\"\u003caws-access-key\u003e\")\n .secretKey(\"\u003caws-secret-key\u003e\")\n .build())\n .build());\n\n var fooCluster = new Cluster(\"fooCluster\", ClusterArgs.builder()\n .name(\"foo\")\n .description(\"Terraform EKS cluster\")\n .eksConfigV2(ClusterEksConfigV2Args.builder()\n .cloudCredentialId(foo.id())\n .region(\"\u003cEKS_REGION\u003e\")\n .kubernetesVersion(\"1.24\")\n .loggingTypes( \n \"audit\",\n \"api\")\n .nodeGroups( \n ClusterEksConfigV2NodeGroupArgs.builder()\n .name(\"node_group1\")\n .instanceType(\"t3.medium\")\n .desiredSize(3)\n .maxSize(5)\n .build(),\n ClusterEksConfigV2NodeGroupArgs.builder()\n .name(\"node_group2\")\n .instanceType(\"m5.xlarge\")\n .desiredSize(2)\n .maxSize(3)\n .nodeRole(\"arn:aws:iam::role/test-NodeInstanceRole\")\n .build())\n .privateAccess(true)\n .publicAccess(false)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: rancher2:CloudCredential\n properties:\n name: foo\n description: foo test\n amazonec2CredentialConfig:\n accessKey: \u003caws-access-key\u003e\n secretKey: \u003caws-secret-key\u003e\n fooCluster:\n type: rancher2:Cluster\n name: foo\n properties:\n name: foo\n description: Terraform EKS cluster\n eksConfigV2:\n cloudCredentialId: ${foo.id}\n region: \u003cEKS_REGION\u003e\n kubernetesVersion: '1.24'\n loggingTypes:\n - audit\n - api\n nodeGroups:\n - name: node_group1\n instanceType: t3.medium\n desiredSize: 3\n maxSize: 5\n - name: node_group2\n instanceType: m5.xlarge\n desiredSize: 2\n maxSize: 3\n nodeRole: arn:aws:iam::role/test-NodeInstanceRole\n privateAccess: true\n publicAccess: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating EKS cluster from Rancher v2, using `eks_config_v2` and launch template. For Rancher v2.5.6 and above.\n\nNote: To use `launch_template` you must provide the ID (seen as `\u003cEC2_LAUNCH_TEMPLATE_ID\u003e`) to the template either as a static value. Or fetched via AWS data-source using one of: aws_ami first and provide the ID to that.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\nconst foo = new rancher2.CloudCredential(\"foo\", {\n name: \"foo\",\n description: \"foo test\",\n amazonec2CredentialConfig: {\n accessKey: \"\u003caws-access-key\u003e\",\n secretKey: \"\u003caws-secret-key\u003e\",\n },\n});\nconst fooCluster = new rancher2.Cluster(\"foo\", {\n name: \"foo\",\n description: \"Terraform EKS cluster\",\n eksConfigV2: {\n cloudCredentialId: foo.id,\n region: \"\u003cEKS_REGION\u003e\",\n kubernetesVersion: \"1.24\",\n loggingTypes: [\n \"audit\",\n \"api\",\n ],\n nodeGroups: [{\n desiredSize: 3,\n maxSize: 5,\n name: \"node_group1\",\n launchTemplates: [{\n id: \"\u003cec2-launch-template-id\u003e\",\n version: 1,\n }],\n }],\n privateAccess: true,\n publicAccess: true,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\nfoo = rancher2.CloudCredential(\"foo\",\n name=\"foo\",\n description=\"foo test\",\n amazonec2_credential_config=rancher2.CloudCredentialAmazonec2CredentialConfigArgs(\n access_key=\"\u003caws-access-key\u003e\",\n secret_key=\"\u003caws-secret-key\u003e\",\n ))\nfoo_cluster = rancher2.Cluster(\"foo\",\n name=\"foo\",\n description=\"Terraform EKS cluster\",\n eks_config_v2=rancher2.ClusterEksConfigV2Args(\n cloud_credential_id=foo.id,\n region=\"\u003cEKS_REGION\u003e\",\n kubernetes_version=\"1.24\",\n logging_types=[\n \"audit\",\n \"api\",\n ],\n node_groups=[rancher2.ClusterEksConfigV2NodeGroupArgs(\n desired_size=3,\n max_size=5,\n name=\"node_group1\",\n launch_templates=[rancher2.ClusterEksConfigV2NodeGroupLaunchTemplateArgs(\n id=\"\u003cec2-launch-template-id\u003e\",\n version=1,\n )],\n )],\n private_access=True,\n public_access=True,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Rancher2.CloudCredential(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"foo test\",\n Amazonec2CredentialConfig = new Rancher2.Inputs.CloudCredentialAmazonec2CredentialConfigArgs\n {\n AccessKey = \"\u003caws-access-key\u003e\",\n SecretKey = \"\u003caws-secret-key\u003e\",\n },\n });\n\n var fooCluster = new Rancher2.Cluster(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"Terraform EKS cluster\",\n EksConfigV2 = new Rancher2.Inputs.ClusterEksConfigV2Args\n {\n CloudCredentialId = foo.Id,\n Region = \"\u003cEKS_REGION\u003e\",\n KubernetesVersion = \"1.24\",\n LoggingTypes = new[]\n {\n \"audit\",\n \"api\",\n },\n NodeGroups = new[]\n {\n new Rancher2.Inputs.ClusterEksConfigV2NodeGroupArgs\n {\n DesiredSize = 3,\n MaxSize = 5,\n Name = \"node_group1\",\n LaunchTemplates = new[]\n {\n new Rancher2.Inputs.ClusterEksConfigV2NodeGroupLaunchTemplateArgs\n {\n Id = \"\u003cec2-launch-template-id\u003e\",\n Version = 1,\n },\n },\n },\n },\n PrivateAccess = true,\n PublicAccess = true,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfoo, err := rancher2.NewCloudCredential(ctx, \"foo\", \u0026rancher2.CloudCredentialArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"foo test\"),\n\t\t\tAmazonec2CredentialConfig: \u0026rancher2.CloudCredentialAmazonec2CredentialConfigArgs{\n\t\t\t\tAccessKey: pulumi.String(\"\u003caws-access-key\u003e\"),\n\t\t\t\tSecretKey: pulumi.String(\"\u003caws-secret-key\u003e\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rancher2.NewCluster(ctx, \"foo\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"Terraform EKS cluster\"),\n\t\t\tEksConfigV2: \u0026rancher2.ClusterEksConfigV2Args{\n\t\t\t\tCloudCredentialId: foo.ID(),\n\t\t\t\tRegion: pulumi.String(\"\u003cEKS_REGION\u003e\"),\n\t\t\t\tKubernetesVersion: pulumi.String(\"1.24\"),\n\t\t\t\tLoggingTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"audit\"),\n\t\t\t\t\tpulumi.String(\"api\"),\n\t\t\t\t},\n\t\t\t\tNodeGroups: rancher2.ClusterEksConfigV2NodeGroupArray{\n\t\t\t\t\t\u0026rancher2.ClusterEksConfigV2NodeGroupArgs{\n\t\t\t\t\t\tDesiredSize: pulumi.Int(3),\n\t\t\t\t\t\tMaxSize: pulumi.Int(5),\n\t\t\t\t\t\tName: pulumi.String(\"node_group1\"),\n\t\t\t\t\t\tLaunchTemplates: rancher2.ClusterEksConfigV2NodeGroupLaunchTemplateArray{\n\t\t\t\t\t\t\t\u0026rancher2.ClusterEksConfigV2NodeGroupLaunchTemplateArgs{\n\t\t\t\t\t\t\t\tId: pulumi.String(\"\u003cec2-launch-template-id\u003e\"),\n\t\t\t\t\t\t\t\tVersion: pulumi.Int(1),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tPrivateAccess: pulumi.Bool(true),\n\t\t\t\tPublicAccess: pulumi.Bool(true),\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.rancher2.CloudCredential;\nimport com.pulumi.rancher2.CloudCredentialArgs;\nimport com.pulumi.rancher2.inputs.CloudCredentialAmazonec2CredentialConfigArgs;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterEksConfigV2Args;\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 foo = new CloudCredential(\"foo\", CloudCredentialArgs.builder()\n .name(\"foo\")\n .description(\"foo test\")\n .amazonec2CredentialConfig(CloudCredentialAmazonec2CredentialConfigArgs.builder()\n .accessKey(\"\u003caws-access-key\u003e\")\n .secretKey(\"\u003caws-secret-key\u003e\")\n .build())\n .build());\n\n var fooCluster = new Cluster(\"fooCluster\", ClusterArgs.builder()\n .name(\"foo\")\n .description(\"Terraform EKS cluster\")\n .eksConfigV2(ClusterEksConfigV2Args.builder()\n .cloudCredentialId(foo.id())\n .region(\"\u003cEKS_REGION\u003e\")\n .kubernetesVersion(\"1.24\")\n .loggingTypes( \n \"audit\",\n \"api\")\n .nodeGroups(ClusterEksConfigV2NodeGroupArgs.builder()\n .desiredSize(3)\n .maxSize(5)\n .name(\"node_group1\")\n .launchTemplates(ClusterEksConfigV2NodeGroupLaunchTemplateArgs.builder()\n .id(\"\u003cec2-launch-template-id\u003e\")\n .version(1)\n .build())\n .build())\n .privateAccess(true)\n .publicAccess(true)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: rancher2:CloudCredential\n properties:\n name: foo\n description: foo test\n amazonec2CredentialConfig:\n accessKey: \u003caws-access-key\u003e\n secretKey: \u003caws-secret-key\u003e\n fooCluster:\n type: rancher2:Cluster\n name: foo\n properties:\n name: foo\n description: Terraform EKS cluster\n eksConfigV2:\n cloudCredentialId: ${foo.id}\n region: \u003cEKS_REGION\u003e\n kubernetesVersion: '1.24'\n loggingTypes:\n - audit\n - api\n nodeGroups:\n - desiredSize: 3\n maxSize: 5\n name: node_group1\n launchTemplates:\n - id: \u003cec2-launch-template-id\u003e\n version: 1\n privateAccess: true\n publicAccess: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating AKS cluster from Rancher v2, using `aks_config_v2`. For Rancher v2.6.0 and above.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rancher2 from \"@pulumi/rancher2\";\n\nconst foo_aks = new rancher2.CloudCredential(\"foo-aks\", {\n name: \"foo-aks\",\n azureCredentialConfig: {\n clientId: \"\u003cclient-id\u003e\",\n clientSecret: \"\u003cclient-secret\u003e\",\n subscriptionId: \"\u003csubscription-id\u003e\",\n },\n});\nconst foo = new rancher2.Cluster(\"foo\", {\n name: \"foo\",\n description: \"Terraform AKS cluster\",\n aksConfigV2: {\n cloudCredentialId: foo_aks.id,\n resourceGroup: \"\u003cresource-group\u003e\",\n resourceLocation: \"\u003cresource-location\u003e\",\n dnsPrefix: \"\u003cdns-prefix\u003e\",\n kubernetesVersion: \"1.24.6\",\n networkPlugin: \"\u003cnetwork-plugin\u003e\",\n virtualNetwork: \"\u003cvirtual-network\u003e\",\n virtualNetworkResourceGroup: \"\u003cvirtual-network-resource-group\u003e\",\n subnet: \"\u003csubnet\u003e\",\n nodeResourceGroup: \"\u003cnode-resource-group\u003e\",\n nodePools: [\n {\n availabilityZones: [\n \"1\",\n \"2\",\n \"3\",\n ],\n name: \"\u003cnodepool-name-1\u003e\",\n mode: \"System\",\n count: 1,\n orchestratorVersion: \"1.21.2\",\n osDiskSizeGb: 128,\n vmSize: \"Standard_DS2_v2\",\n },\n {\n availabilityZones: [\n \"1\",\n \"2\",\n \"3\",\n ],\n name: \"\u003cnodepool-name-2\u003e\",\n count: 1,\n mode: \"User\",\n orchestratorVersion: \"1.21.2\",\n osDiskSizeGb: 128,\n vmSize: \"Standard_DS2_v2\",\n maxSurge: \"25%\",\n labels: {\n test1: \"data1\",\n test2: \"data2\",\n },\n taints: [\"none:PreferNoSchedule\"],\n },\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_rancher2 as rancher2\n\nfoo_aks = rancher2.CloudCredential(\"foo-aks\",\n name=\"foo-aks\",\n azure_credential_config=rancher2.CloudCredentialAzureCredentialConfigArgs(\n client_id=\"\u003cclient-id\u003e\",\n client_secret=\"\u003cclient-secret\u003e\",\n subscription_id=\"\u003csubscription-id\u003e\",\n ))\nfoo = rancher2.Cluster(\"foo\",\n name=\"foo\",\n description=\"Terraform AKS cluster\",\n aks_config_v2=rancher2.ClusterAksConfigV2Args(\n cloud_credential_id=foo_aks.id,\n resource_group=\"\u003cresource-group\u003e\",\n resource_location=\"\u003cresource-location\u003e\",\n dns_prefix=\"\u003cdns-prefix\u003e\",\n kubernetes_version=\"1.24.6\",\n network_plugin=\"\u003cnetwork-plugin\u003e\",\n virtual_network=\"\u003cvirtual-network\u003e\",\n virtual_network_resource_group=\"\u003cvirtual-network-resource-group\u003e\",\n subnet=\"\u003csubnet\u003e\",\n node_resource_group=\"\u003cnode-resource-group\u003e\",\n node_pools=[\n rancher2.ClusterAksConfigV2NodePoolArgs(\n availability_zones=[\n \"1\",\n \"2\",\n \"3\",\n ],\n name=\"\u003cnodepool-name-1\u003e\",\n mode=\"System\",\n count=1,\n orchestrator_version=\"1.21.2\",\n os_disk_size_gb=128,\n vm_size=\"Standard_DS2_v2\",\n ),\n rancher2.ClusterAksConfigV2NodePoolArgs(\n availability_zones=[\n \"1\",\n \"2\",\n \"3\",\n ],\n name=\"\u003cnodepool-name-2\u003e\",\n count=1,\n mode=\"User\",\n orchestrator_version=\"1.21.2\",\n os_disk_size_gb=128,\n vm_size=\"Standard_DS2_v2\",\n max_surge=\"25%\",\n labels={\n \"test1\": \"data1\",\n \"test2\": \"data2\",\n },\n taints=[\"none:PreferNoSchedule\"],\n ),\n ],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Rancher2 = Pulumi.Rancher2;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo_aks = new Rancher2.CloudCredential(\"foo-aks\", new()\n {\n Name = \"foo-aks\",\n AzureCredentialConfig = new Rancher2.Inputs.CloudCredentialAzureCredentialConfigArgs\n {\n ClientId = \"\u003cclient-id\u003e\",\n ClientSecret = \"\u003cclient-secret\u003e\",\n SubscriptionId = \"\u003csubscription-id\u003e\",\n },\n });\n\n var foo = new Rancher2.Cluster(\"foo\", new()\n {\n Name = \"foo\",\n Description = \"Terraform AKS cluster\",\n AksConfigV2 = new Rancher2.Inputs.ClusterAksConfigV2Args\n {\n CloudCredentialId = foo_aks.Id,\n ResourceGroup = \"\u003cresource-group\u003e\",\n ResourceLocation = \"\u003cresource-location\u003e\",\n DnsPrefix = \"\u003cdns-prefix\u003e\",\n KubernetesVersion = \"1.24.6\",\n NetworkPlugin = \"\u003cnetwork-plugin\u003e\",\n VirtualNetwork = \"\u003cvirtual-network\u003e\",\n VirtualNetworkResourceGroup = \"\u003cvirtual-network-resource-group\u003e\",\n Subnet = \"\u003csubnet\u003e\",\n NodeResourceGroup = \"\u003cnode-resource-group\u003e\",\n NodePools = new[]\n {\n new Rancher2.Inputs.ClusterAksConfigV2NodePoolArgs\n {\n AvailabilityZones = new[]\n {\n \"1\",\n \"2\",\n \"3\",\n },\n Name = \"\u003cnodepool-name-1\u003e\",\n Mode = \"System\",\n Count = 1,\n OrchestratorVersion = \"1.21.2\",\n OsDiskSizeGb = 128,\n VmSize = \"Standard_DS2_v2\",\n },\n new Rancher2.Inputs.ClusterAksConfigV2NodePoolArgs\n {\n AvailabilityZones = new[]\n {\n \"1\",\n \"2\",\n \"3\",\n },\n Name = \"\u003cnodepool-name-2\u003e\",\n Count = 1,\n Mode = \"User\",\n OrchestratorVersion = \"1.21.2\",\n OsDiskSizeGb = 128,\n VmSize = \"Standard_DS2_v2\",\n MaxSurge = \"25%\",\n Labels = \n {\n { \"test1\", \"data1\" },\n { \"test2\", \"data2\" },\n },\n Taints = new[]\n {\n \"none:PreferNoSchedule\",\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rancher2/sdk/v6/go/rancher2\"\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 := rancher2.NewCloudCredential(ctx, \"foo-aks\", \u0026rancher2.CloudCredentialArgs{\n\t\t\tName: pulumi.String(\"foo-aks\"),\n\t\t\tAzureCredentialConfig: \u0026rancher2.CloudCredentialAzureCredentialConfigArgs{\n\t\t\t\tClientId: pulumi.String(\"\u003cclient-id\u003e\"),\n\t\t\t\tClientSecret: pulumi.String(\"\u003cclient-secret\u003e\"),\n\t\t\t\tSubscriptionId: pulumi.String(\"\u003csubscription-id\u003e\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rancher2.NewCluster(ctx, \"foo\", \u0026rancher2.ClusterArgs{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"Terraform AKS cluster\"),\n\t\t\tAksConfigV2: \u0026rancher2.ClusterAksConfigV2Args{\n\t\t\t\tCloudCredentialId: foo_aks.ID(),\n\t\t\t\tResourceGroup: pulumi.String(\"\u003cresource-group\u003e\"),\n\t\t\t\tResourceLocation: pulumi.String(\"\u003cresource-location\u003e\"),\n\t\t\t\tDnsPrefix: pulumi.String(\"\u003cdns-prefix\u003e\"),\n\t\t\t\tKubernetesVersion: pulumi.String(\"1.24.6\"),\n\t\t\t\tNetworkPlugin: pulumi.String(\"\u003cnetwork-plugin\u003e\"),\n\t\t\t\tVirtualNetwork: pulumi.String(\"\u003cvirtual-network\u003e\"),\n\t\t\t\tVirtualNetworkResourceGroup: pulumi.String(\"\u003cvirtual-network-resource-group\u003e\"),\n\t\t\t\tSubnet: pulumi.String(\"\u003csubnet\u003e\"),\n\t\t\t\tNodeResourceGroup: pulumi.String(\"\u003cnode-resource-group\u003e\"),\n\t\t\t\tNodePools: rancher2.ClusterAksConfigV2NodePoolArray{\n\t\t\t\t\t\u0026rancher2.ClusterAksConfigV2NodePoolArgs{\n\t\t\t\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\t\t\t\tpulumi.String(\"3\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tName: pulumi.String(\"\u003cnodepool-name-1\u003e\"),\n\t\t\t\t\t\tMode: pulumi.String(\"System\"),\n\t\t\t\t\t\tCount: pulumi.Int(1),\n\t\t\t\t\t\tOrchestratorVersion: pulumi.String(\"1.21.2\"),\n\t\t\t\t\t\tOsDiskSizeGb: pulumi.Int(128),\n\t\t\t\t\t\tVmSize: pulumi.String(\"Standard_DS2_v2\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026rancher2.ClusterAksConfigV2NodePoolArgs{\n\t\t\t\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\t\t\t\tpulumi.String(\"3\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tName: pulumi.String(\"\u003cnodepool-name-2\u003e\"),\n\t\t\t\t\t\tCount: pulumi.Int(1),\n\t\t\t\t\t\tMode: pulumi.String(\"User\"),\n\t\t\t\t\t\tOrchestratorVersion: pulumi.String(\"1.21.2\"),\n\t\t\t\t\t\tOsDiskSizeGb: pulumi.Int(128),\n\t\t\t\t\t\tVmSize: pulumi.String(\"Standard_DS2_v2\"),\n\t\t\t\t\t\tMaxSurge: pulumi.String(\"25%\"),\n\t\t\t\t\t\tLabels: pulumi.Map{\n\t\t\t\t\t\t\t\"test1\": pulumi.Any(\"data1\"),\n\t\t\t\t\t\t\t\"test2\": pulumi.Any(\"data2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tTaints: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"none:PreferNoSchedule\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rancher2.CloudCredential;\nimport com.pulumi.rancher2.CloudCredentialArgs;\nimport com.pulumi.rancher2.inputs.CloudCredentialAzureCredentialConfigArgs;\nimport com.pulumi.rancher2.Cluster;\nimport com.pulumi.rancher2.ClusterArgs;\nimport com.pulumi.rancher2.inputs.ClusterAksConfigV2Args;\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 foo_aks = new CloudCredential(\"foo-aks\", CloudCredentialArgs.builder()\n .name(\"foo-aks\")\n .azureCredentialConfig(CloudCredentialAzureCredentialConfigArgs.builder()\n .clientId(\"\u003cclient-id\u003e\")\n .clientSecret(\"\u003cclient-secret\u003e\")\n .subscriptionId(\"\u003csubscription-id\u003e\")\n .build())\n .build());\n\n var foo = new Cluster(\"foo\", ClusterArgs.builder()\n .name(\"foo\")\n .description(\"Terraform AKS cluster\")\n .aksConfigV2(ClusterAksConfigV2Args.builder()\n .cloudCredentialId(foo_aks.id())\n .resourceGroup(\"\u003cresource-group\u003e\")\n .resourceLocation(\"\u003cresource-location\u003e\")\n .dnsPrefix(\"\u003cdns-prefix\u003e\")\n .kubernetesVersion(\"1.24.6\")\n .networkPlugin(\"\u003cnetwork-plugin\u003e\")\n .virtualNetwork(\"\u003cvirtual-network\u003e\")\n .virtualNetworkResourceGroup(\"\u003cvirtual-network-resource-group\u003e\")\n .subnet(\"\u003csubnet\u003e\")\n .nodeResourceGroup(\"\u003cnode-resource-group\u003e\")\n .nodePools( \n ClusterAksConfigV2NodePoolArgs.builder()\n .availabilityZones( \n \"1\",\n \"2\",\n \"3\")\n .name(\"\u003cnodepool-name-1\u003e\")\n .mode(\"System\")\n .count(1)\n .orchestratorVersion(\"1.21.2\")\n .osDiskSizeGb(128)\n .vmSize(\"Standard_DS2_v2\")\n .build(),\n ClusterAksConfigV2NodePoolArgs.builder()\n .availabilityZones( \n \"1\",\n \"2\",\n \"3\")\n .name(\"\u003cnodepool-name-2\u003e\")\n .count(1)\n .mode(\"User\")\n .orchestratorVersion(\"1.21.2\")\n .osDiskSizeGb(128)\n .vmSize(\"Standard_DS2_v2\")\n .maxSurge(\"25%\")\n .labels(Map.ofEntries(\n Map.entry(\"test1\", \"data1\"),\n Map.entry(\"test2\", \"data2\")\n ))\n .taints(\"none:PreferNoSchedule\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo-aks:\n type: rancher2:CloudCredential\n properties:\n name: foo-aks\n azureCredentialConfig:\n clientId: \u003cclient-id\u003e\n clientSecret: \u003cclient-secret\u003e\n subscriptionId: \u003csubscription-id\u003e\n foo:\n type: rancher2:Cluster\n properties:\n name: foo\n description: Terraform AKS cluster\n aksConfigV2:\n cloudCredentialId: ${[\"foo-aks\"].id}\n resourceGroup: \u003cresource-group\u003e\n resourceLocation: \u003cresource-location\u003e\n dnsPrefix: \u003cdns-prefix\u003e\n kubernetesVersion: 1.24.6\n networkPlugin: \u003cnetwork-plugin\u003e\n virtualNetwork: \u003cvirtual-network\u003e\n virtualNetworkResourceGroup: \u003cvirtual-network-resource-group\u003e\n subnet: \u003csubnet\u003e\n nodeResourceGroup: \u003cnode-resource-group\u003e\n nodePools:\n - availabilityZones:\n - '1'\n - '2'\n - '3'\n name: \u003cnodepool-name-1\u003e\n mode: System\n count: 1\n orchestratorVersion: 1.21.2\n osDiskSizeGb: 128\n vmSize: Standard_DS2_v2\n - availabilityZones:\n - '1'\n - '2'\n - '3'\n name: \u003cnodepool-name-2\u003e\n count: 1\n mode: User\n orchestratorVersion: 1.21.2\n osDiskSizeGb: 128\n vmSize: Standard_DS2_v2\n maxSurge: 25%\n labels:\n test1: data1\n test2: data2\n taints:\n - none:PreferNoSchedule\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nClusters can be imported using the Rancher Cluster ID\n\n```sh\n$ pulumi import rancher2:index/cluster:Cluster foo \u0026lt;CLUSTER_ID\u0026gt;\n```\n", "properties": { "agentEnvVars": { "type": "array", @@ -27912,7 +28002,7 @@ "items": { "type": "string" }, - "description": "Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster\n" + "description": "Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list)\n" }, "labels": { "type": "object", @@ -27962,7 +28052,7 @@ "items": { "type": "string" }, - "description": "Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster\n" + "description": "Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list)\n" }, "labels": { "type": "object", @@ -28010,7 +28100,7 @@ "items": { "type": "string" }, - "description": "Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster\n" + "description": "Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list)\n" }, "labels": { "type": "object", @@ -31264,6 +31354,13 @@ "type": "boolean", "description": "External role template. Default `false` (bool)\n" }, + "externalRules": { + "type": "array", + "items": { + "$ref": "#/types/rancher2:index/RoleTemplateExternalRule:RoleTemplateExternalRule" + }, + "description": "External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list)\n" + }, "hidden": { "type": "boolean", "description": "Hidden role template. Default `false` (bool)\n" @@ -31302,6 +31399,7 @@ "annotations", "builtin", "description", + "externalRules", "labels", "name", "roleTemplateIds", @@ -31335,6 +31433,13 @@ "type": "boolean", "description": "External role template. Default `false` (bool)\n" }, + "externalRules": { + "type": "array", + "items": { + "$ref": "#/types/rancher2:index/RoleTemplateExternalRule:RoleTemplateExternalRule" + }, + "description": "External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list)\n" + }, "hidden": { "type": "boolean", "description": "Hidden role template. Default `false` (bool)\n" @@ -31403,6 +31508,13 @@ "type": "boolean", "description": "External role template. Default `false` (bool)\n" }, + "externalRules": { + "type": "array", + "items": { + "$ref": "#/types/rancher2:index/RoleTemplateExternalRule:RoleTemplateExternalRule" + }, + "description": "External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list)\n" + }, "hidden": { "type": "boolean", "description": "Hidden role template. Default `false` (bool)\n" @@ -35501,6 +35613,13 @@ "type": "string", "description": "Role template context. `cluster` and `project` values are supported (string)\n" }, + "externalRules": { + "type": "array", + "items": { + "$ref": "#/types/rancher2:index/getRoleTemplateExternalRule:getRoleTemplateExternalRule" + }, + "description": "(Computed) External rules used for authorization. (list)\n" + }, "name": { "type": "string", "description": "The name of the Role Template (string)\n" @@ -35544,6 +35663,13 @@ "description": "(Computed) External role template (bool)\n", "type": "boolean" }, + "externalRules": { + "description": "(Computed) External rules used for authorization. (list)\n", + "items": { + "$ref": "#/types/rancher2:index/getRoleTemplateExternalRule:getRoleTemplateExternalRule" + }, + "type": "array" + }, "hidden": { "description": "(Computed) Hidden role template (bool)\n", "type": "boolean" @@ -35589,6 +35715,7 @@ "defaultRole", "description", "external", + "externalRules", "hidden", "labels", "locked", diff --git a/provider/go.mod b/provider/go.mod index 70c5b5710..e388c9cf0 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -22,36 +22,36 @@ replace ( github.com/crewjam/saml => github.com/crewjam/saml v0.4.5 github.com/docker/distribution => github.com/docker/distribution v2.8.1+incompatible github.com/docker/docker => github.com/docker/docker v20.10.17+incompatible - github.com/rancher/rancher/pkg/apis => github.com/rancher/rancher/pkg/apis v0.0.0-20230901132600-5e1ee2611616 - github.com/rancher/rancher/pkg/client => github.com/rancher/rancher/pkg/client v0.0.0-20230901132600-5e1ee2611616 + github.com/rancher/rancher/pkg/apis => github.com/rancher/rancher/pkg/apis v0.0.0-20240611034301-19a4362e2243 + github.com/rancher/rancher/pkg/client => github.com/rancher/rancher/pkg/client v0.0.0-20240611034301-19a4362e2243 github.com/spf13/afero => github.com/spf13/afero v1.2.2 helm.sh/helm/v3 => github.com/rancher/helm/v3 v3.9.0-rancher1 - k8s.io/api => k8s.io/api v0.25.4 - k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.25.4 - k8s.io/apimachinery => k8s.io/apimachinery v0.25.4 - k8s.io/apiserver => k8s.io/apiserver v0.25.4 - k8s.io/cli-runtime => k8s.io/cli-runtime v0.25.4 - k8s.io/client-go => github.com/rancher/client-go v1.25.4-rancher1 - k8s.io/cloud-provider => k8s.io/cloud-provider v0.25.4 - k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.25.4 - k8s.io/code-generator => k8s.io/code-generator v0.25.4 - k8s.io/component-base => k8s.io/component-base v0.25.4 - k8s.io/component-helpers => k8s.io/component-helpers v0.25.4 - k8s.io/controller-manager => k8s.io/controller-manager v0.25.4 - k8s.io/cri-api => k8s.io/cri-api v0.25.4 - k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.25.4 - k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.25.4 - k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.25.4 - k8s.io/kube-proxy => k8s.io/kube-proxy v0.25.4 - k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.25.4 - k8s.io/kubectl => k8s.io/kubectl v0.25.4 - k8s.io/kubelet => k8s.io/kubelet v0.25.4 - k8s.io/kubernetes => k8s.io/kubernetes v1.25.4 - k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.25.4 - k8s.io/metrics => k8s.io/metrics v0.25.4 - k8s.io/mount-utils => k8s.io/mount-utils v0.25.4 - k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.25.4 - k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.25.4 + k8s.io/api => k8s.io/api v0.28.6 + k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.28.6 + k8s.io/apimachinery => k8s.io/apimachinery v0.28.6 + k8s.io/apiserver => k8s.io/apiserver v0.28.6 + k8s.io/cli-runtime => k8s.io/cli-runtime v0.28.6 + k8s.io/client-go => github.com/rancher/client-go v1.28.6-rancher1 + k8s.io/cloud-provider => k8s.io/cloud-provider v0.28.6 + k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.28.6 + k8s.io/code-generator => k8s.io/code-generator v0.28.6 + k8s.io/component-base => k8s.io/component-base v0.28.6 + k8s.io/component-helpers => k8s.io/component-helpers v0.28.6 + k8s.io/controller-manager => k8s.io/controller-manager v0.28.6 + k8s.io/cri-api => k8s.io/cri-api v0.28.6 + k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.28.6 + k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.28.6 + k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.28.6 + k8s.io/kube-proxy => k8s.io/kube-proxy v0.28.6 + k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.28.6 + k8s.io/kubectl => k8s.io/kubectl v0.28.6 + k8s.io/kubelet => k8s.io/kubelet v0.28.6 + k8s.io/kubernetes => k8s.io/kubernetes v1.28.6 + k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.28.6 + k8s.io/metrics => k8s.io/metrics v0.28.6 + k8s.io/mount-utils => k8s.io/mount-utils v0.28.6 + k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.28.6 + k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.28.6 launchpad.net/gocheck => github.com/go-check/check v0.0.0-20200227125254-8fa46927fb4f ) @@ -59,13 +59,12 @@ require ( github.com/hashicorp/terraform-plugin-sdk v1.17.2 github.com/pulumi/pulumi-terraform-bridge/v3 v3.86.0 github.com/pulumi/pulumi/sdk/v3 v3.121.0 - github.com/rancher/terraform-provider-rancher2 v1.25.1-0.20240306215549-383a664a3660 + github.com/rancher/terraform-provider-rancher2 v1.25.1-0.20240709231636-9e26756e838e ) require ( cloud.google.com/go v0.112.1 // indirect - cloud.google.com/go/compute v1.25.0 // indirect - cloud.google.com/go/compute/metadata v0.2.3 // indirect + cloud.google.com/go/compute/metadata v0.3.0 // indirect cloud.google.com/go/iam v1.1.6 // indirect cloud.google.com/go/kms v1.15.7 // indirect cloud.google.com/go/logging v1.9.0 // indirect @@ -78,10 +77,10 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect - github.com/BurntSushi/toml v1.2.1 // indirect + github.com/BurntSushi/toml v1.3.2 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver v1.5.0 // indirect - github.com/Masterminds/semver/v3 v3.2.0 // indirect + github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Masterminds/sprig/v3 v3.2.3 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/ProtonMail/go-crypto v1.1.0-alpha.0 // indirect @@ -111,6 +110,7 @@ require ( github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/bgentry/speakeasy v0.1.0 // indirect github.com/blang/semver v3.5.1+incompatible // indirect + github.com/blang/semver/v4 v4.0.0 // indirect github.com/cenkalti/backoff/v3 v3.2.2 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/charmbracelet/bubbles v0.16.1 // indirect @@ -124,10 +124,11 @@ require ( github.com/deckarep/golang-set/v2 v2.5.0 // indirect github.com/djherbis/times v1.5.0 // indirect github.com/edsrzf/mmap-go v1.1.0 // indirect - github.com/emicklei/go-restful/v3 v3.10.1 // indirect + github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/ettle/strcase v0.1.1 // indirect - github.com/evanphx/json-patch v4.12.0+incompatible // indirect + github.com/evanphx/json-patch v5.6.0+incompatible // indirect + github.com/evanphx/json-patch/v5 v5.6.0 // indirect github.com/fatih/color v1.16.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect @@ -139,15 +140,15 @@ require ( github.com/go-logr/logr v1.4.1 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect - github.com/go-openapi/jsonreference v0.20.1 // indirect + github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/swag v0.22.3 // indirect - github.com/gofrs/uuid v4.3.1+incompatible // indirect + github.com/gofrs/uuid v4.4.0+incompatible // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/glog v1.2.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect - github.com/google/gnostic v0.5.7-v3refs // indirect + github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/go-github/v29 v29.0.3 // indirect github.com/google/go-querystring v1.1.0 // indirect @@ -191,20 +192,20 @@ require ( github.com/hashicorp/terraform-svchost v0.1.1 // indirect github.com/hashicorp/vault/api v1.12.0 // indirect github.com/hashicorp/yamux v0.1.1 // indirect - github.com/huandu/xstrings v1.3.3 // indirect + github.com/huandu/xstrings v1.4.0 // indirect github.com/iancoleman/strcase v0.2.0 // indirect - github.com/imdario/mergo v0.3.15 // indirect + github.com/imdario/mergo v0.3.16 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect - github.com/klauspost/compress v1.16.0 // indirect + github.com/klauspost/compress v1.16.5 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect - github.com/matryer/moq v0.0.0-20200607124540-4638a53893e6 // indirect + github.com/matryer/moq v0.3.2 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-localereader v0.0.1 // indirect @@ -240,10 +241,10 @@ require ( github.com/pkg/term v1.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/posener/complete v1.2.3 // indirect - github.com/prometheus/client_golang v1.14.0 // indirect + github.com/prometheus/client_golang v1.16.0 // indirect github.com/prometheus/client_model v0.4.0 // indirect - github.com/prometheus/common v0.39.0 // indirect - github.com/prometheus/procfs v0.8.0 // indirect + github.com/prometheus/common v0.44.0 // indirect + github.com/prometheus/procfs v0.10.1 // indirect github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect github.com/pulumi/esc v0.9.1 // indirect github.com/pulumi/inflector v0.1.1 // indirect @@ -253,19 +254,19 @@ require ( github.com/pulumi/pulumi/pkg/v3 v3.121.0 // indirect github.com/pulumi/schema-tools v0.1.2 // indirect github.com/pulumi/terraform-diff-reader v0.0.2 // indirect - github.com/rancher/aks-operator v1.2.0-rc2 // indirect - github.com/rancher/apiserver v0.0.0-20230120214941-e88c32739dc7 // indirect - github.com/rancher/channelserver v0.5.1-0.20220405170618-28c9b37deff1 // indirect - github.com/rancher/eks-operator v1.2.2-rc3 // indirect - github.com/rancher/fleet/pkg/apis v0.0.0-20230810121238-9d0ee7f56848 // indirect - github.com/rancher/gke-operator v1.1.6-rc2 // indirect - github.com/rancher/lasso v0.0.0-20230629200414-8a54b32e6792 // indirect - github.com/rancher/norman v0.0.0-20230426211126-d3552b018687 // indirect - github.com/rancher/rancher v0.0.0-20230525094739-ff2e09449efc // indirect + github.com/rancher/aks-operator v1.2.2 // indirect + github.com/rancher/apiserver v0.0.0-20240207153744-69b3c2b56f3f // indirect + github.com/rancher/channelserver v0.6.1-0.20240212155841-07630c8295da // indirect + github.com/rancher/eks-operator v1.3.2 // indirect + github.com/rancher/fleet/pkg/apis v0.9.1-rc.2.0.20240213164401-2c6b1019687c // indirect + github.com/rancher/gke-operator v1.2.2 // indirect + github.com/rancher/lasso v0.0.0-20240123150939-7055397d6dfa // indirect + github.com/rancher/norman v0.0.0-20240206180703-6eda4bc94b4c // indirect + github.com/rancher/rancher v0.0.0-20240618132447-2145c8e9d603 // indirect github.com/rancher/rancher/pkg/apis v0.0.0 // indirect github.com/rancher/rancher/pkg/client v0.0.0 // indirect - github.com/rancher/rke v1.5.0-rc2 // indirect - github.com/rancher/wrangler v1.1.1 // indirect + github.com/rancher/rke v1.5.11-rc1 // indirect + github.com/rancher/wrangler/v2 v2.1.4 // indirect github.com/rivo/uniseg v0.4.4 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect @@ -279,7 +280,7 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/skeema/knownhosts v1.2.2 // indirect github.com/spf13/afero v1.9.5 // indirect - github.com/spf13/cast v1.5.0 // indirect + github.com/spf13/cast v1.5.1 // indirect github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/testify v1.9.0 // indirect @@ -291,7 +292,7 @@ require ( github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect - github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect + github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/zclconf/go-cty v1.14.2 // indirect @@ -302,14 +303,14 @@ require ( go.opentelemetry.io/otel v1.24.0 // indirect go.opentelemetry.io/otel/metric v1.24.0 // indirect go.opentelemetry.io/otel/trace v1.24.0 // indirect - go.uber.org/atomic v1.10.0 // indirect + go.uber.org/atomic v1.11.0 // indirect gocloud.dev v0.37.0 // indirect gocloud.dev/secrets/hashivault v0.37.0 // indirect golang.org/x/crypto v0.24.0 // indirect golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.26.0 // indirect - golang.org/x/oauth2 v0.18.0 // indirect + golang.org/x/oauth2 v0.20.0 // indirect golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.21.0 // indirect golang.org/x/term v0.21.0 // indirect @@ -317,9 +318,8 @@ require ( golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.22.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect - gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect + gomodules.xyz/jsonpatch/v2 v2.3.0 // indirect google.golang.org/api v0.169.0 // indirect - google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240311173647-c811ad7063a7 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect @@ -329,22 +329,22 @@ require ( gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/api v0.26.1 // indirect - k8s.io/apiextensions-apiserver v0.25.4 // indirect - k8s.io/apimachinery v0.26.1 // indirect - k8s.io/apiserver v0.25.4 // indirect + k8s.io/api v0.28.8 // indirect + k8s.io/apiextensions-apiserver v0.28.8 // indirect + k8s.io/apimachinery v0.28.8 // indirect + k8s.io/apiserver v0.28.8 // indirect k8s.io/client-go v12.0.0+incompatible // indirect - k8s.io/component-base v0.25.4 // indirect - k8s.io/gengo v0.0.0-20220902162205-c0856e24416d // indirect - k8s.io/klog/v2 v2.90.1 // indirect - k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect - k8s.io/kubernetes v1.25.4 // indirect - k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect + k8s.io/component-base v0.28.8 // indirect + k8s.io/gengo v0.0.0-20230306165830-ab3349d207d4 // indirect + k8s.io/klog/v2 v2.100.1 // indirect + k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect + k8s.io/kubernetes v1.28.8 // indirect + k8s.io/utils v0.0.0-20230505201702-9f6742963106 // indirect lukechampine.com/frand v1.4.2 // indirect - sigs.k8s.io/cli-utils v0.27.0 // indirect - sigs.k8s.io/cluster-api v1.2.12 // indirect - sigs.k8s.io/controller-runtime v0.12.3 // indirect + sigs.k8s.io/cli-utils v0.28.0 // indirect + sigs.k8s.io/cluster-api v1.5.5 // indirect + sigs.k8s.io/controller-runtime v0.15.3 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect - sigs.k8s.io/yaml v1.3.0 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/provider/go.sum b/provider/go.sum index 675fbf82f..c297c8867 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -302,13 +302,12 @@ cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdi cloud.google.com/go/compute v1.23.1/go.mod h1:CqB3xpmPKKt3OJpW2ndFIXnA9A4xAy/F3Xp1ixncW78= cloud.google.com/go/compute v1.23.2/go.mod h1:JJ0atRC0J/oWYiiVBmsSsrRnh92DhZPG4hFDcR04Rns= cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= -cloud.google.com/go/compute v1.25.0 h1:H1/4SqSUhjPFE7L5ddzHOfY2bCAvjwNRZPNl6Ni5oYU= -cloud.google.com/go/compute v1.25.0/go.mod h1:GR7F0ZPZH8EhChlMo9FkLd7eUTwEymjqQagxzilIxIE= cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= -cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= +cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= @@ -513,7 +512,6 @@ cloud.google.com/go/filestore v1.7.1/go.mod h1:y10jsorq40JJnjR/lQ8AfFbbcGlw3g+Dp cloud.google.com/go/filestore v1.7.2/go.mod h1:TYOlyJs25f/omgj+vY7/tIG/E7BX369triSPzE4LdgE= cloud.google.com/go/filestore v1.7.3/go.mod h1:Qp8WaEERR3cSkxToxFPHh/b8AACkSut+4qlCjAmKTV0= cloud.google.com/go/filestore v1.7.4/go.mod h1:S5JCxIbFjeBhWMTfIYH2Jx24J6BqjwpkkPl+nBA5DlI= -cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= cloud.google.com/go/firestore v1.11.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4= cloud.google.com/go/firestore v1.12.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4= @@ -1150,7 +1148,6 @@ dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= -github.com/360EntSecGroup-Skylar/excelize v1.4.1/go.mod h1:vnax29X2usfl7HHkBrX5EvSCJcmH3dT9luvxzu8iGAE= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 h1:E+OJmp2tPvt1W+amx48v1eqbjDYsgN+RzP4q16yV5eM= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1/go.mod h1:a6xsAQUZg+VsS3TJ05SRp524Hs4pZ/AeFSr5ENf0Yjo= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 h1:tfLQ34V6F7tVSwoTf/4lH5sE0o6eCJuNDTmH09nDpbc= @@ -1161,34 +1158,24 @@ github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 h1:m/sWOGCREuSBqg2 github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0/go.mod h1:Pu5Zksi2KrU7LPbZbNINx6fuVrUp/ffvpxdDj+i8LeE= github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 h1:FbH3BbSb4bvGluTesZZ+ttN/MDsnMmQP36OSnDuSXqw= github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1/go.mod h1:9V2j0jn9jDEkCkv8w/bKTNppX/d0FVA1ud77xCIP4KA= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest v0.11.27/go.mod h1:7l8ybrIdUmGqZMTD0sRtAr8NvbHjfofbf8RSP2q7w7U= -github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= -github.com/Azure/go-autorest/autorest/adal v0.9.20/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= -github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= -github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/autorest/mocks v0.4.2/go.mod h1:Vy7OitM9Kei0i1Oj+LvyAWMXJHeKH1MVlzFugfVrmyU= -github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU= github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= -github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= +github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= 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/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= -github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= -github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= +github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= +github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= github.com/Masterminds/sprig/v3 v3.2.1/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk= github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA= @@ -1198,17 +1185,11 @@ github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugX github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo= github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/ProtonMail/go-crypto v1.1.0-alpha.0 h1:nHGfwXmFvJrSR9xu8qL7BkO4DqTHXE9N5vPhgY2I+j0= github.com/ProtonMail/go-crypto v1.1.0-alpha.0/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= -github.com/PuerkitoBio/goquery v1.5.0/go.mod h1:qD2PgZ9lccMbQlc7eEOjaeRlFQON7xY8kdmcsrnKqMg= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA= @@ -1217,25 +1198,16 @@ github.com/agext/levenshtein v1.2.2/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412/go.mod h1:WPjqKcmVOxf0XSf3YxCJs6N6AOSrOx3obionmG7T0y0= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/andybalholm/cascadia v1.0.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= github.com/andybalholm/crlf v0.0.0-20171020200849-670099aa064f/go.mod h1:k8feO4+kXDxro6ErPXBRTJ/ro2mf0SsFG8s7doP9kJE= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= 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/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20220418222510-f25a4f6275ed/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY= github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= github.com/apache/arrow/go/v12 v12.0.0/go.mod h1:d+tV/eHZZ7Dz7RPrFKtPK02tpr+c9/PEd/zm8mDS9Vg= @@ -1251,16 +1223,11 @@ github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJE github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= 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/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= 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/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= github.com/aws/aws-sdk-go v1.15.78/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM= @@ -1313,20 +1280,15 @@ github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= 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/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= -github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= 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/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= @@ -1338,14 +1300,10 @@ github.com/cenkalti/backoff/v3 v3.2.2/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4r github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= -github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= -github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= github.com/charmbracelet/bubbles v0.16.1 h1:6uzpAAaT9ZqKssntbvZMlksWHruQLNxg49H5WdeuYSY= github.com/charmbracelet/bubbles v0.16.1/go.mod h1:2QCp9LFlEsBQMvIYERr7Ww2H2bA7xen1idUDIzm/+Xc= github.com/charmbracelet/bubbletea v0.25.0 h1:bAfwk7jRz7FKFl9RzlIULPkStffg5k6pNt5dywy4TcM= @@ -1378,54 +1336,29 @@ github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20230428030218-4003588d1b74/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20231109132714-523115ebc101/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= -github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= -github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 h1:q2hJAaP1k2wIvVRd/hEHD7lacgqrCPS+k8g1MndzfWY= github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= 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/daviddengcn/go-colortext v1.0.0/go.mod h1:zDqEI5NVUop5QPpVJUxE9UO10hRnmkD5G4Pmri9+m4c= github.com/deckarep/golang-set/v2 v2.5.0 h1:hn6cEZtQ0h3J8kFrHR/NrzyOoTnjgW1+FmNJzQ7y/sA= github.com/deckarep/golang-set/v2 v2.5.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/djherbis/times v1.5.0 h1:79myA211VwPhFTqUk8xehWrsEO+zcIZj0zT8mXPVARU= github.com/djherbis/times v1.5.0/go.mod h1:5q7FDLvbNg1L/KaBmPcWlVR9NmoKo3+ucqUA3ijQhA0= -github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/dustmop/soup v1.1.2-0.20190516214245-38228baa104e/go.mod h1:CgNC6SGbT+Xb8wGGvzilttZL1mc5sQ/5KkcxsZttMIk= github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ= github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= -github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= -github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= -github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ= -github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= +github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= @@ -1451,14 +1384,10 @@ github.com/envoyproxy/protoc-gen-validate v1.0.1/go.mod h1:0vj8bNkYbSTNS2PIyH87K github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE= github.com/ettle/strcase v0.1.1 h1:htFueZyVeE1XNnMEfbqp5r67qAN/4r6ya1ysq8Q+Zcw= github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY= -github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ= -github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= -github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= +github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= +github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= +github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= @@ -1470,25 +1399,18 @@ github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSw github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= -github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= +github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= +github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= -github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= -github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4= github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE= github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= @@ -1514,17 +1436,9 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-jose/go-jose/v3 v3.0.3 h1:fFKWeig/irsp7XD2zBxvnmA/XaRWp5V3CBsZXJF7G7k= github.com/go-jose/go-jose/v3 v3.0.3/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQrVfLAMboGkQ= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -1533,80 +1447,30 @@ github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= github.com/go-logr/logr v1.4.1/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/go-logr/zapr v0.1.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk= -github.com/go-logr/zapr v0.4.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk= -github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A= -github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= +github.com/go-logr/zapr v1.2.4/go.mod h1:FyHWQIzQORZ0QVE1BtVHv3cKtNLuXsbNLtpuhNapBOA= github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= -github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8= -github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/spec v0.19.5/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= -github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.8/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/go-test/deep v1.0.7 h1:/VSMRlnY/JSyqxQUzQLKVMAskpY/NZKFA5j2P+0pP2M= github.com/go-test/deep v1.0.7/go.mod h1:QV8Hv/iy04NyLBxAdO9njL0iVPN1S4d/A3NVv1V36o8= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofrs/uuid v4.3.1+incompatible h1:0/KbAdpx3UXAx1kEOWHJeOkpbgRFGHVgv+CFIY7dBJI= -github.com/gofrs/uuid v4.3.1+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= +github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= 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-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= @@ -1616,8 +1480,6 @@ github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= -github.com/golang/groupcache v0.0.0-20180513044358-24b0969c4cb7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -1633,7 +1495,6 @@ github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71 github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= -github.com/golang/protobuf v1.0.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -1658,17 +1519,11 @@ github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6 github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/bytes v1.0.0/go.mod h1:AdRaCFwmc/00ZzELMWb01soso6W1R/++O1XL80yAn+A= -github.com/golangplus/fmt v1.0.0/go.mod h1:zpM0OfbMCjPtd2qkTD/jX2MgiFCqklhSUFyDW44gVQE= -github.com/golangplus/testing v1.0.0/go.mod h1:ZDreixUV3YzhoVraIDyOzHrr76p6NUh6k/pPg/Q3gYA= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/cel-go v0.12.5/go.mod h1:Jk7ljRzLBhkmiAwBoUxB1sZSCVBAzkqPF25olK/iRDw= github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54= -github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= +github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= +github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -1723,8 +1578,8 @@ github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20230406165453-00490a63f317 h1:hFhpt7CTmR3DX+b4R19ydQFtofxT0Sv3QsKNMVQYTMQ= -github.com/google/pprof v0.0.0-20230406165453-00490a63f317/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk= +github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg= +github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/s2a-go v0.1.0/go.mod h1:OJpEgntRZo8ugHpF9hkoLJbS5dSI20XZeXJ9JVywLlM= github.com/google/s2a-go v0.1.3/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= @@ -1734,7 +1589,6 @@ github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8 github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -1770,34 +1624,19 @@ github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5i github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA= github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= -github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU= -github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= 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/cli v1.1.6/go.mod h1:MPon5QYlgjjo0BSoAiN0ESeT5fRzDjVRp+uioJ0piz4= -github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= 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= @@ -1818,8 +1657,6 @@ github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrj github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= 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= @@ -1829,7 +1666,6 @@ github.com/hashicorp/go-plugin v1.6.0 h1:wgd4KxHJTVGGqWBq4QPB1i5BZNEx9BR8+OFmHDm github.com/hashicorp/go-plugin v1.6.0/go.mod h1:lBS5MtSSBZk0SHc66KACcjjlU6WzEVP/8pwz68aMkCI= github.com/hashicorp/go-retryablehttp v0.7.5 h1:bJj+Pj19UZMIweq/iie+1u5YCdGrnxCT9yvm0e+Nd5M= github.com/hashicorp/go-retryablehttp v0.7.5/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo= @@ -1838,10 +1674,8 @@ github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 h1:iBt4Ew4XEGLfh6/bPk4rSY github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8/go.mod h1:aiJI+PIApBRQG7FZTEBx5GiiX+HbOHilUdNxUZi4eV0= github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 h1:kes8mmyCpxJsI7FTwtzRqEy9CdjCtrXrXGuOpxEA7Ts= github.com/hashicorp/go-secure-stdlib/strutil v0.1.2/go.mod h1:Gou2R9+il93BqX25LAKCLuM+y9U2T4hlwvT1yprcna4= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-sockaddr v1.0.6 h1:RSG8rKU28VTUTvEKghe5gIhIQpv8evvNpnDEyqO4u9I= github.com/hashicorp/go-sockaddr v1.0.6/go.mod h1:uoUUmtwU7n9Dv3O4SNLeFvg0SxQ3lyjsj6+CCykpaxI= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= @@ -1851,10 +1685,8 @@ github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09 github.com/hashicorp/go-version v1.3.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hc-install v0.6.3/go.mod h1:KamGdbodYzlufbWh4r9NRo8y6GLHWZP2GBtdnms1Ln0= github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= @@ -1867,9 +1699,6 @@ github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 h1:T1Q6ag9tCwun16AW+ github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE= github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hashicorp/terraform-config-inspect v0.0.0-20191115094559-17f92b0546e8/go.mod h1:p+ivJws3dpqbp1iP84+npOyAmTTOLMgCzrXd3GSdn/A= github.com/hashicorp/terraform-config-inspect v0.0.0-20191212124732-c6ae6269b9d7 h1:Pc5TCv9mbxFN6UVX0LH6CpQrdTM5YjbVI2w15237Pjk= github.com/hashicorp/terraform-config-inspect v0.0.0-20191212124732-c6ae6269b9d7/go.mod h1:p+ivJws3dpqbp1iP84+npOyAmTTOLMgCzrXd3GSdn/A= @@ -1913,18 +1742,18 @@ github.com/hexops/valast v1.4.4/go.mod h1:Jcy1pNH7LNraVaAZDLyv21hHg2WBv9Nf9FL6fG github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/huandu/xstrings v1.3.3 h1:/Gcsuc1x8JVbJ9/rlye4xZnVAbEkGauT8lbebqcQws4= github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= +github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM= github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= +github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= 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= @@ -1944,21 +1773,12 @@ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9Y github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= @@ -1966,7 +1786,6 @@ github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT 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/keybase/go-crypto v0.0.0-20161004153544-93f5b35093ba/go.mod h1:ghbZscTyKdM07+Fw3KSi0hcJm+AlEUWj8QLlPtijN/M= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= 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= @@ -1974,13 +1793,10 @@ github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j github.com/klauspost/compress v1.11.2/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= -github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= -github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI= +github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -1988,35 +1804,23 @@ github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NB 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/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= 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/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= 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/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= github.com/lyft/protoc-gen-star/v2 v2.0.3/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= -github.com/matryer/moq v0.0.0-20200607124540-4638a53893e6 h1:Cx1ZvZ3SQTli1nKee9qvJ/NJP3vt11s+ilM7NF3QSL8= -github.com/matryer/moq v0.0.0-20200607124540-4638a53893e6/go.mod h1:9ELz6aaclSIGnZBoaSLZ3NAl1VTufbOrXBPvtcy6WiQ= +github.com/matryer/moq v0.3.2 h1:z7oltmpTxiQ9nKNg0Jc7z45TM+eO7OhCVohxRxwaudM= +github.com/matryer/moq v0.3.2/go.mod h1:RJ75ZZZD71hejp39j4crZLsEDszGk6iH4v4YsWFKH4s= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= @@ -2039,16 +1843,13 @@ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D 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.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= @@ -2074,14 +1875,10 @@ github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZX github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= 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/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/hashstructure v1.0.0 h1:ZkRJX1CyOoTkar7p/mLS5TZU4nJ1Rn/F8u9dGS02Q3Y= github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.4.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= @@ -2091,17 +1888,11 @@ github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx github.com/mmcloughlin/avo v0.5.0/go.mod h1:ChHFdoV7ql95Wi7vuq2YT1bwCJqiWdZrQ1im3VujLYM= github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= -github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= -github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= 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= @@ -2110,12 +1901,8 @@ github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo= github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= -github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/natefinch/atomic v1.0.1 h1:ZPYKxkqQOx3KZ+RsbnP/YsgvxWQPGxjC0oBt2AhwV0A= github.com/natefinch/atomic v1.0.1/go.mod h1:N/D/ELrljoqDyT3rZrsUmtsuzvHkeB/wWjHV22AZRbM= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= @@ -2123,21 +1910,13 @@ github.com/nightlyone/lockfile v1.0.0 h1:RHep2cFKK4PonZJDdEl4GmkabuhbsRMgk/k3uAm github.com/nightlyone/lockfile v1.0.0/go.mod h1:rywoIealpdNse2r832aiD9jRk8ErCatROs6LzC841CI= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= -github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= -github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= -github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.4.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= -github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= github.com/onsi/ginkgo/v2 v2.1.6/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk= @@ -2151,16 +1930,11 @@ github.com/onsi/ginkgo/v2 v2.9.1/go.mod h1:FEcmzVcCHl+4o9bQZVab+4dC9+j+91t2FHSzm github.com/onsi/ginkgo/v2 v2.9.2/go.mod h1:WHcJJG2dIlcCqVfBAwUCrJxSPFb6v4azBwgxeMeDuts= github.com/onsi/ginkgo/v2 v2.9.5/go.mod h1:tvAoo1QUJwNEU2ITftXTpR7R1RbCzoZUOs3RonqW57k= github.com/onsi/ginkgo/v2 v2.9.7/go.mod h1:cxrmXWykAwTwhQsJOPfdIDiJ+l2RYq7U8hFU+M/1uw0= -github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU= github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7kR0iZvM= -github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.3.0/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/ginkgo/v2 v2.17.3 h1:oJcvKpIb7/8uLpDDtnQuf18xVnwKp8DTD7DQ6gTd/MU= +github.com/onsi/ginkgo/v2 v2.17.3/go.mod h1:nP2DPOQoNsQmsVyv5rDA8JkXQoCs6goXIvr/PRJ1eCc= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.8.1/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= -github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= github.com/onsi/gomega v1.20.1/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= @@ -2175,20 +1949,14 @@ github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3 github.com/onsi/gomega v1.27.6/go.mod h1:PIQNjfQwkP3aQAH7lf7j87O/5FiNr+ZR8+ipb+qQlhg= github.com/onsi/gomega v1.27.7/go.mod h1:1p8OOlwo2iUUDsHnOrjE5UKYJ+e3W8eQ3qSlRahPmr4= github.com/onsi/gomega v1.27.8/go.mod h1:2J8vzI/s+2shY9XHRApDkdgPo1TKT7P2u6fXeJKFnNQ= -github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= -github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= +github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= 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/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/paulmach/orb v0.1.3/go.mod h1:VFlX/8C+IQ1p6FTRRKzKoOPJnvEtA5G0Veuqwbu//Vk= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pgavlin/fx v0.1.6 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU= github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M= github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 h1:LoCV5cscNVWyK5ChN/uCoIFJz8jZD63VQiGJIRgr6uo= @@ -2203,7 +1971,6 @@ github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFz github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -2215,43 +1982,17 @@ github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndr github.com/posener/complete v1.2.1/go.mod h1:6gapUrK/U1TAN7ciCoNRIdVC5sbdBTUh1DKN0g6uH7E= github.com/posener/complete v1.2.3 h1:NP0eAhjcjImqslEwo/1hq7gpajME0fTLTezBKDqfXqo= github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= -github.com/pquerna/cachecontrol v0.1.0/go.mod h1:NrUG3Z7Rdu85UNR3vm7SOsl1nFIeSiQnrHV5K9mBcUI= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= -github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= +github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.39.0 h1:oOyhkDq05hPZKItWVBkJ6g6AtGxi+fy7F4JvUV8uhsI= -github.com/prometheus/common v0.39.0/go.mod h1:6XBZ7lYdLCbkAVhwRsWTZn+IN5AB9F/NXd5w0BbEX0Y= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= -github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= +github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= +github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= 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.9.1 h1:HH5eEv8sgyxSpY5a8yePyqFXzA8cvBvapfH8457+mIs= @@ -2278,48 +2019,42 @@ github.com/pulumi/terraform-diff-reader v0.0.2 h1:kTE4nEXU3/SYXESvAIem+wyHMI3abq github.com/pulumi/terraform-diff-reader v0.0.2/go.mod h1:sZ9FUzGO+yM41hsQHs/yIcj/Y993qMdBxBU5mpDmAfQ= github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20240520223432-0c0bf0d65f10 h1:M6Ceq1o6gGeEKxTZgJ2CKLye3p67ZZjnsAwxr5VC32A= github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20240520223432-0c0bf0d65f10/go.mod h1:H+8tjs9TjV2w57QFVSMBQacf8k/E1XwLXGCARgViC6A= -github.com/qri-io/starlib v0.4.2-0.20200213133954-ff2e8cd5ef8d/go.mod h1:7DPO4domFU579Ga6E61sB9VFNaniPVwJP5C4bBCu3wA= -github.com/rancher/aks-operator v1.2.0-rc2 h1:zP1VEzAc/jZ7FyeiQcQ+pkFUxDySrKoN+RdSnnj7LnE= -github.com/rancher/aks-operator v1.2.0-rc2/go.mod h1:ga4p9r8nTUuSRqkYLTBgA5OlPf19iT/i9Qa3kXH7H7Y= -github.com/rancher/apiserver v0.0.0-20201023000256-1a0a904f9197/go.mod h1:8W0EwaR9dH5NDFw6mpAX437D0q+EZqKWbZyX71+z2WI= -github.com/rancher/apiserver v0.0.0-20230120214941-e88c32739dc7 h1:Ob72oeF0iM8gWEMh+qKT5e1pzTwQU70I5kx4gMaqCmI= -github.com/rancher/apiserver v0.0.0-20230120214941-e88c32739dc7/go.mod h1:xwQhXv3XFxWfA6tLa4ZeaERu8ldNbyKv2sF+mT+c5WA= -github.com/rancher/channelserver v0.5.1-0.20220405170618-28c9b37deff1 h1:NMYQzCtLEEaJZ2xleLzDixN6Y+yO9ShzgsjHDg4zOrk= -github.com/rancher/channelserver v0.5.1-0.20220405170618-28c9b37deff1/go.mod h1:dZ4saGTw1S0RwX8ivPijBIR+2obRpfFuO2NkDHUKKXg= -github.com/rancher/client-go v1.25.4-rancher1 h1:9MlBC8QbgngUkhNzMR8rZmmCIj6WNRHFOnYiwC2Kty4= -github.com/rancher/client-go v1.25.4-rancher1/go.mod h1:8trHCAC83XKY0wsBIpbirZU4NTUpbuhc2JnI7OruGZw= -github.com/rancher/eks-operator v1.2.2-rc3 h1:zzf4JNCXJHPmI82bVFbJvywz346vWL9FFaBSrvNOhPQ= -github.com/rancher/eks-operator v1.2.2-rc3/go.mod h1:/wyszmtekvefdRRuBSe0XVZln5BnVrFIeBFrNHCPawo= -github.com/rancher/fleet/pkg/apis v0.0.0-20230810121238-9d0ee7f56848 h1:FNZEI+rCC+u5RVE4dyH7EX8ltlZ74zBowUOviMoGk5c= -github.com/rancher/fleet/pkg/apis v0.0.0-20230810121238-9d0ee7f56848/go.mod h1:TbpjMODeuFUJlHG8IfehZ4FBzgzpxwPwa+GwtFq2Tq0= -github.com/rancher/gke-operator v1.1.6-rc2 h1:ENFi2Cj2t/EwI7m6wSiZ8xYZWS3TpU0owY47pH9raXw= -github.com/rancher/gke-operator v1.1.6-rc2/go.mod h1:Zcc1ROLHoyxI19eVZ3OdXco4S/B1TReOtm7shIxYxwg= -github.com/rancher/lasso v0.0.0-20210616224652-fc3ebd901c08/go.mod h1:9qZd/S8DqWzfKtjKGgSoHqGEByYmUE3qRaBaaAHwfEM= -github.com/rancher/lasso v0.0.0-20230629200414-8a54b32e6792 h1:IaPhDqppVYX2v/nCR8j2i0nqOLD5yggzzy39QUlcqDw= -github.com/rancher/lasso v0.0.0-20230629200414-8a54b32e6792/go.mod h1:dNcwXjcqgdOuKFIVETNAPURRh3e5PAi/nWUjj+MLVZA= -github.com/rancher/norman v0.0.0-20230426211126-d3552b018687 h1:9Bf4fZBIdkidKTqHFsJXMlnzflxx3h4ZAEH/n6HMuyI= -github.com/rancher/norman v0.0.0-20230426211126-d3552b018687/go.mod h1:7MyWxfCmPl6N/UFLu4neLH6nwTFgQQF5rxtUGyZvPFE= -github.com/rancher/rancher v0.0.0-20230525094739-ff2e09449efc h1:gM1tmiUxwjcl2ijQqyBBFz3Mgf/r+PGHKlJgHLXSK6U= -github.com/rancher/rancher v0.0.0-20230525094739-ff2e09449efc/go.mod h1:VvtuvzQVlhE/Xa3WMoyRS1hzjlHge0tbkPs4PAhxmOE= -github.com/rancher/rancher/pkg/apis v0.0.0-20230901132600-5e1ee2611616 h1:jMNvKWFg5XEtzJijQS6IgbpVlT1H7WIoLlXAbiM2Jas= -github.com/rancher/rancher/pkg/apis v0.0.0-20230901132600-5e1ee2611616/go.mod h1:faAHE0MFFEB+fZQMfjfylYuzuVOn5yxKi7JFRsEfFOE= -github.com/rancher/rancher/pkg/client v0.0.0-20230901132600-5e1ee2611616 h1:4GkRP5TXOXqH1M0DOLd8Olohlhna0/0e3kWpzdJ4EZ8= -github.com/rancher/rancher/pkg/client v0.0.0-20230901132600-5e1ee2611616/go.mod h1:eDLHGs0Wrq0gvAY3YCBPbWatkhj1/R+lg04S3slbroY= -github.com/rancher/rke v1.5.0-rc2 h1:gec//2jkyEimO/fZLMMRVAJF8GpKqDf3voe+k3jrhGg= -github.com/rancher/rke v1.5.0-rc2/go.mod h1:wUwsm6dXyzzxWlVwmPPR5XMWX6ICjAdWJ+l45ZqV+P0= -github.com/rancher/terraform-provider-rancher2 v1.25.1-0.20240306215549-383a664a3660 h1:2nJf0Z4jkcnYp7X+Q1LQhj2lTELs5RfpNUA3OT5/UK8= -github.com/rancher/terraform-provider-rancher2 v1.25.1-0.20240306215549-383a664a3660/go.mod h1:zjtXfgdh6xhy8hNBW24ZhYxt86W4jWaqIK2G6iWCkHU= -github.com/rancher/wrangler v0.6.1/go.mod h1:L4HtjPeX8iqLgsxfJgz+JjKMcX2q3qbRXSeTlC/CSd4= -github.com/rancher/wrangler v0.8.11-0.20220120160420-18c996a8e956/go.mod h1:Lte9WjPtGYxYacIWeiS9qawvu2R4NujFU9xuXWJvc/0= -github.com/rancher/wrangler v1.1.1 h1:wmqUwqc2M7ADfXnBCJTFkTB5ZREWpD78rnZMzmxwMvM= -github.com/rancher/wrangler v1.1.1/go.mod h1:ioVbKupzcBOdzsl55MvEDN0R1wdGggj8iNCYGFI5JvM= +github.com/rancher/aks-operator v1.2.2 h1:OnIXmM+TYJPsfezs+8lfRQrwgdMh6stjrsP9KPHogfc= +github.com/rancher/aks-operator v1.2.2/go.mod h1:vNaRJh/cqPB19OrY14CaHzyGH3KmRv1k3LcAo+AdqQ4= +github.com/rancher/apiserver v0.0.0-20240207153744-69b3c2b56f3f h1:51aGoMMuPO+JsoglWmXYgA9xLWPv/bnpT0/6zErgaIU= +github.com/rancher/apiserver v0.0.0-20240207153744-69b3c2b56f3f/go.mod h1:RBcpQs/KjClGntgKCd5XcrUX5J2Rz9sW5DGEMd7H5bw= +github.com/rancher/channelserver v0.6.1-0.20240212155841-07630c8295da h1:M7p9bmFBw5kKgoBtkPXjDZTGoj94ZWt6NaTa/7jglB4= +github.com/rancher/channelserver v0.6.1-0.20240212155841-07630c8295da/go.mod h1:DuOeweH+bHP22OVq7mgQwDMVJjMmPNn8WzF1IHAU39U= +github.com/rancher/client-go v1.28.6-rancher1 h1:nSoGKs12BuPviZtzemO7wTX8jxABaLqfYKFLRBV8MI0= +github.com/rancher/client-go v1.28.6-rancher1/go.mod h1:+nu0Yp21Oeo/cBCsprNVXB2BfJTV51lFfe5tXl2rUL8= +github.com/rancher/eks-operator v1.3.2 h1:0FWtfAhcOFHYR/GA+LiVcvzQ1TsOmaluCEP6tEpeZcM= +github.com/rancher/eks-operator v1.3.2/go.mod h1:cnkOlgkrVal9XZtH6xUE/57VvP0psK4i7fwwfZINkrA= +github.com/rancher/fleet/pkg/apis v0.9.1-rc.2.0.20240213164401-2c6b1019687c h1:Oza71YDPN+jE9WY8xRVthD3MYkVYHHgsTOAxGSb9OLs= +github.com/rancher/fleet/pkg/apis v0.9.1-rc.2.0.20240213164401-2c6b1019687c/go.mod h1:KNDEr0BQU33vw4UEYR0v33HwIcyrykcI5UksJwJOmpM= +github.com/rancher/gke-operator v1.2.2 h1:bT8uijPD7lCdwkvclCh3CeuQPFj2vbZomKJpfRwTK/M= +github.com/rancher/gke-operator v1.2.2/go.mod h1:CNdldUK2fKZyN9jxhbnaTMigWA+rVZVzbnWfCvnhPJU= +github.com/rancher/lasso v0.0.0-20240123150939-7055397d6dfa h1:eRhvQJjIpPxJunlS3e1J3qTghUy9MIrMjQa2aXYSC3k= +github.com/rancher/lasso v0.0.0-20240123150939-7055397d6dfa/go.mod h1:utdskbIL7kdVvPCUFPEJQDWJwPHGFpUCRfVkX2G2Xxg= +github.com/rancher/norman v0.0.0-20240206180703-6eda4bc94b4c h1:ayqZqJ4AYYVaZGlBztLBij81z/QRsSFbQfxs9bzA+Tg= +github.com/rancher/norman v0.0.0-20240206180703-6eda4bc94b4c/go.mod h1:WbNpu/HwChwKk54W0rWBdioxYVVZwVVz//UX84m/NvY= +github.com/rancher/rancher v0.0.0-20240618132447-2145c8e9d603 h1:epA64furT74i2TEdHmjJ50V7biNyaqDPkfBWu81wK/4= +github.com/rancher/rancher v0.0.0-20240618132447-2145c8e9d603/go.mod h1:gYLd9oGi802+StsGyafR2l2Em8lHo3CK0ibxlWBOW30= +github.com/rancher/rancher/pkg/apis v0.0.0-20240611034301-19a4362e2243 h1:lDdMkc0klQ/0jA8l3QWRzKpK21nO6E4qIagaOBq2KdA= +github.com/rancher/rancher/pkg/apis v0.0.0-20240611034301-19a4362e2243/go.mod h1:5FRNHrG/G92wZ7XYKr9eFl/Sf2XqHown8CozHk+pmmU= +github.com/rancher/rancher/pkg/client v0.0.0-20240611034301-19a4362e2243 h1:QDsw8rmLzUz6qCXPf+2Bjq70jsVJgFVU6k06bOf6gIc= +github.com/rancher/rancher/pkg/client v0.0.0-20240611034301-19a4362e2243/go.mod h1:iZL8Yvm0q8mGUHJlkWUyw/1tyE+GP/1TZf/2JHo9R+A= +github.com/rancher/rke v1.5.11-rc1 h1:rggj6LNk06BMGQ8FFoMa5F+8m0/M11s2WdgqtXIzwgw= +github.com/rancher/rke v1.5.11-rc1/go.mod h1:/z9oyKqYpFwgRBV9rfLxqUdjydz/VMCTcjld4uUt7uM= +github.com/rancher/terraform-provider-rancher2 v1.25.1-0.20240709231636-9e26756e838e h1:7Gkw9epKOd9JlHn03hk4j4qi9IT2ZOd1zKQcRM5gZd8= +github.com/rancher/terraform-provider-rancher2 v1.25.1-0.20240709231636-9e26756e838e/go.mod h1:4jjkbrQbGlWiw6cixyfeSj83cjPNN9miurpaQd+8WpI= +github.com/rancher/wrangler/v2 v2.1.4 h1:ohov0i6A9dJHHO6sjfsH4Dqv93ZTdm5lIJVJdPzVdQc= +github.com/rancher/wrangler/v2 v2.1.4/go.mod h1:af5OaGU/COgreQh1mRbKiUI64draT2NN34uk+PALFY8= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -2328,20 +2063,16 @@ github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/f github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk= github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= 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.0.0 h1:TToq11gyfNlrMFZiYujSekIsPd9AmsA2Bj/iv+s4JHE= github.com/santhosh-tekuri/jsonschema/v5 v5.0.0/go.mod h1:FKdcjfQW6rpZSnxxUvEA5H/cDPdvJ/SZJQLWWXWGrZ0= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sebdah/goldie v1.0.0/go.mod h1:jXP4hmWywNEwZzhMuv2ccnqTSFpuq8iyQhtQdkkZBH4= github.com/segmentio/asm v1.1.3 h1:WM03sfUOENvvKexOLp+pCqgb/WDjsi7EK8gIsICtzhc= github.com/segmentio/asm v1.1.3/go.mod h1:Ld3L4ZXGNcSLRg4JBsZ3//1+f/TjYl0Mzen/DQy1EJg= @@ -2355,57 +2086,33 @@ github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/skeema/knownhosts v1.2.1/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= -github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= -github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= +github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= +github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= -github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= -github.com/spyzhov/ajson v0.4.2/go.mod h1:63V+CGM6f1Bu/p4nLIN8885ojBdt88TbLoSFzyqMuVA= -github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.2.3-0.20181224173747-660f15d67dbb/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= @@ -2420,26 +2127,19 @@ github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= 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/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 h1:X9dsIWPuuEJlPX//UmRKophhOKCGXc46RVIGuttks68= github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7/go.mod h1:UxoP3EypF8JfGEjAII8jx1q8rQyDnX8qdTCs/UQBVIE= 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/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ulikunitz/xz v0.5.5/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8= github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= -github.com/urfave/cli/v2 v2.4.0/go.mod h1:NX9W0zmTvedE5oDoOMs2RTC8RvdK98NTYZE5LbaEYPg= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/vmihailenco/msgpack v4.0.1+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI= @@ -2454,16 +2154,13 @@ github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0= 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/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= -github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -2489,21 +2186,6 @@ github.com/zclconf/go-cty-yaml v1.0.2 h1:dNyg4QLTrv2IfJpm7Wtxi55ed5gLGOlPrZ6kMd5 github.com/zclconf/go-cty-yaml v1.0.2/go.mod h1:IP3Ylp0wQpYm50IHK8OZWKMu6sPJIUgKa8XhiVHura0= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= -go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/api/v3 v3.5.4/go.mod h1:5GB2vv4A4AOn3yk7MftYGHkUfGtDHnEraIjym4dYz5A= -go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/pkg/v3 v3.5.4/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.etcd.io/etcd/client/v2 v2.305.4/go.mod h1:Ud+VUwIi9/uQHOMA+4ekToJ12lTxlv0zB/+DHwTGEbU= -go.etcd.io/etcd/client/v3 v3.5.4/go.mod h1:ZaRkVgBZC+L+dLCjTcF1hRXpgZXQPOvnA/Ak/gq3kiY= -go.etcd.io/etcd/pkg/v3 v3.5.4/go.mod h1:OI+TtO+Aa3nhQSppMbwE4ld3uF1/fqqwbpfndbbrEe0= -go.etcd.io/etcd/raft/v3 v3.5.4/go.mod h1:SCuunjYvZFC0fBX0vxMSPjuZmpcSk+XaAcMrD6Do03w= -go.etcd.io/etcd/server/v3 v3.5.4/go.mod h1:S5/YTU15KxymM5l3T6b09sNOHPXqGYIZStpuuGbb65c= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -2513,51 +2195,27 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= -go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= -go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= -go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= -go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= -go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw= go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc= -go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= -go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= -go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= -go.starlark.net v0.0.0-20190528202925-30ae18b8564f/go.mod h1:c1/X6cHgvdXj6pUlmWKMkuqRnW4K8x2vwt6JAaaircg= -go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= -go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= -go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= gocloud.dev v0.37.0 h1:XF1rN6R0qZI/9DYjN16Uy0durAmSlf58DHOcb28GPro= @@ -2565,16 +2223,11 @@ gocloud.dev v0.37.0/go.mod h1:7/O4kqdInCNsc6LqgmuFnS0GRew4XNNYWpA44yQnwco= gocloud.dev/secrets/hashivault v0.37.0 h1:5ehGtUBP29DFAgAs6bPw7fVSgqQ3TxaoK2xVcLp1x+c= gocloud.dev/secrets/hashivault v0.37.0/go.mod h1:4ClUWjBfP8wLdGts56acjHz3mWLuATMoH9vi74FjIv8= golang.org/x/arch v0.1.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -2583,10 +2236,7 @@ golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220517005047-85d78b3ac167/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= @@ -2675,32 +2325,21 @@ golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.0.0-20180112015858-5ccada7d0a7b/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191009170851-d66e71096ffb/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -2721,7 +2360,6 @@ golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= @@ -2730,7 +2368,6 @@ golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5o golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= @@ -2779,7 +2416,6 @@ golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= @@ -2804,8 +2440,8 @@ golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQ golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= -golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= -golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= +golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= +golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -2829,26 +2465,19 @@ golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20180117170059-2c42eef0765b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 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-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2856,14 +2485,12 @@ golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2877,12 +2504,9 @@ golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/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-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2897,19 +2521,16 @@ golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210502180810-71e4cd670f79/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210817190340-bfb29a6856f2/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -2919,7 +2540,6 @@ golang.org/x/sys v0.0.0-20211110154304-99a53858aa08/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -2982,7 +2602,6 @@ golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20171227012246-e19ae1496984/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -3007,43 +2626,30 @@ golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 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-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191017205301-920acffc3e65/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -3112,9 +2718,8 @@ golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNq golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= -gomodules.xyz/jsonpatch/v2 v2.0.1/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU= -gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY= -gomodules.xyz/jsonpatch/v2 v2.2.0/go.mod h1:WXp+iVDkoLQqPudfQ9GBlwB2eZ5DKOnjQZCYdOS8GPY= +gomodules.xyz/jsonpatch/v2 v2.3.0 h1:8NFhfS6gzxNqjLIYnZxg319wZ5Qjnx4m/CcX+Klzazc= +gomodules.xyz/jsonpatch/v2 v2.3.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= @@ -3145,7 +2750,6 @@ google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34q google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= @@ -3223,7 +2827,6 @@ google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= @@ -3234,7 +2837,6 @@ google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -3401,7 +3003,6 @@ google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEd google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= @@ -3475,7 +3076,6 @@ google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -3487,36 +3087,19 @@ gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= 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.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.0.0/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/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-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200121175148-a6ecf24a6d71/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/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= -gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -3527,52 +3110,27 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= -k8s.io/api v0.25.4 h1:3YO8J4RtmG7elEgaWMb4HgmpS2CfY1QlaOz9nwB+ZSs= -k8s.io/api v0.25.4/go.mod h1:IG2+RzyPQLllQxnhzD8KQNEu4c4YvyDTpSMztf4A0OQ= -k8s.io/apiextensions-apiserver v0.25.4 h1:7hu9pF+xikxQuQZ7/30z/qxIPZc2J1lFElPtr7f+B6U= -k8s.io/apiextensions-apiserver v0.25.4/go.mod h1:bkSGki5YBoZWdn5pWtNIdGvDrrsRWlmnvl9a+tAw5vQ= -k8s.io/apimachinery v0.25.4 h1:CtXsuaitMESSu339tfhVXhQrPET+EiWnIY1rcurKnAc= -k8s.io/apimachinery v0.25.4/go.mod h1:jaF9C/iPNM1FuLl7Zuy5b9v+n35HGSh6AQ4HYRkCqwo= -k8s.io/apiserver v0.25.4 h1:/3TwZcgLqX7wUxq7TtXOUqXeBTwXIblVMQdhR5XZ7yo= -k8s.io/apiserver v0.25.4/go.mod h1:rPcm567XxjOnnd7jedDUnGJGmDGAo+cT6H7QHAN+xV0= -k8s.io/cli-runtime v0.25.4/go.mod h1:JGOw1CR8v4Mcz6cEKA7bFQe0bPrNn1l5sGAX1/Ke4Eg= -k8s.io/code-generator v0.25.4/go.mod h1:9F5fuVZOMWRme7MYj2YT3L9ropPWPokd9VRhVyD3+0w= -k8s.io/component-base v0.25.4 h1:n1bjg9Yt+G1C0WnIDJmg2fo6wbEU1UGMRiQSjmj7hNQ= -k8s.io/component-base v0.25.4/go.mod h1:nnZJU8OP13PJEm6/p5V2ztgX2oyteIaAGKGMYb2L2cY= -k8s.io/component-helpers v0.25.4/go.mod h1:X4KJ8SsJ/onWcDQkRhcE2WRG/iNMufCl7RsNSYtguJg= -k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= -k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= -k8s.io/gengo v0.0.0-20220902162205-c0856e24416d h1:U9tB195lKdzwqicbJvyJeOXV7Klv+wNAWENRnXEGi08= -k8s.io/gengo v0.0.0-20220902162205-c0856e24416d/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= -k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= -k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= +k8s.io/api v0.28.6 h1:yy6u9CuIhmg55YvF/BavPBBXB+5QicB64njJXxVnzLo= +k8s.io/api v0.28.6/go.mod h1:AM6Ys6g9MY3dl/XNaNfg/GePI0FT7WBGu8efU/lirAo= +k8s.io/apiextensions-apiserver v0.28.6 h1:myB3iG/3v3jqCg28JDbOefu4sH2/erNEXgytRzJKBOo= +k8s.io/apiextensions-apiserver v0.28.6/go.mod h1:qlp6xRKBgyRhe5AYc81TQpLx4kLNK8/sGQUOwMkVjRk= +k8s.io/apimachinery v0.28.6 h1:RsTeR4z6S07srPg6XYrwXpTJVMXsjPXn0ODakMytSW0= +k8s.io/apimachinery v0.28.6/go.mod h1:QFNX/kCl/EMT2WTSz8k4WLCv2XnkOLMaL8GAVRMdpsA= +k8s.io/apiserver v0.28.6 h1:SfS5v4I5UGvh0q/1rzvNwLFsK+r7YzcsixnUc0NwoEk= +k8s.io/apiserver v0.28.6/go.mod h1:8n0aerS3kPm9usyB8B+an6/BZ5+Fa9fNqlASFdDDVwk= +k8s.io/component-base v0.28.6 h1:G4T8VrcQ7xZou3by/fY5NU5mfxOBlWaivS2lPrEltAo= +k8s.io/component-base v0.28.6/go.mod h1:Dg62OOG3ALu2P4nAG00UdsuHoNLQJ5VsUZKQlLDcS+E= +k8s.io/gengo v0.0.0-20230306165830-ab3349d207d4 h1:aClvVG6GbX10ISHcc24J+tqbr0S7fEe1MWkFJ7cWWCI= +k8s.io/gengo v0.0.0-20230306165830-ab3349d207d4/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.10.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/klog/v2 v2.70.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= -k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-aggregator v0.25.4/go.mod h1:PH65mLSQoUld53w0VkdYcsIGh7wjJGZ5DyfoARronz0= -k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= -k8s.io/kube-openapi v0.0.0-20220401212409-b28bf2818661/go.mod h1:daOouuuwd9JXpv1L7Y34iV3yf6nxzipkKMWWlqlvK9M= -k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1/go.mod h1:C/N6wCaBHeBHkHUesQOQy2/MZqGgMAFPqGsGQLdbZBU= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg= -k8s.io/kubectl v0.25.4/go.mod h1:CKMrQ67Bn2YCP26tZStPQGq62zr9pvzEf65A0navm8k= -k8s.io/kubernetes v1.25.4 h1:M1+MR8IxE64zHhSSDn30twChLaOI+p0Kt77pvyQMKwU= -k8s.io/kubernetes v1.25.4/go.mod h1:lvEY+3iJhh+sGIK1LorGkI56rW0eLGsfalnp68wQwYU= -k8s.io/metrics v0.25.4/go.mod h1:cFxN3gbdb0nld4IGHHM51qKHUCcXvzkKh3z1g2YriL8= -k8s.io/utils v0.0.0-20190801114015-581e00157fb1/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= -k8s.io/utils v0.0.0-20191114184206-e782cd3c129f/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= -k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20210820185131-d34e5cb4466e/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY= -k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= +k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 h1:LyMgNKD2P8Wn1iAwQU5OhxCKlKJy0sHc+PcDwFB24dQ= +k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9/go.mod h1:wZK2AVp1uHCp4VamDVgBP2COHZjqD1T68Rf0CM3YjSM= +k8s.io/kubernetes v1.28.6 h1:Nn2fXNjaqmKyXeFq6verbdqzlj1aqUpBcyeC1OhRFa4= +k8s.io/kubernetes v1.28.6/go.mod h1:0qpyGJTR3blkbQOmZA3Z0u1VDZJNxJM8ifLUVNJN0X8= +k8s.io/utils v0.0.0-20230505201702-9f6742963106 h1:EObNQ3TW2D+WptiYXlApGNLVy0zm/JIBVY9i+M4wpAU= +k8s.io/utils v0.0.0-20230505201702-9f6742963106/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw= lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s= lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= @@ -3634,30 +3192,16 @@ rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8 rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.33/go.mod h1:soWkSNf2tZC7aMibXEqVhCd73GOY5fJikn8qbdzemB0= -sigs.k8s.io/cli-utils v0.16.0/go.mod h1:9Jqm9K2W6ShhCxsEuaz6HSRKKOXigPUx3ZfypGgxBLY= -sigs.k8s.io/cli-utils v0.27.0 h1:BxI7lPNn0fBZa5g4UwR+ShJyL4CCxELA6tLHbr2YrpU= -sigs.k8s.io/cli-utils v0.27.0/go.mod h1:8ll2fyx+bzjbwmwUnKBQU+2LDbMDsxy44DiDZ+drALg= -sigs.k8s.io/cluster-api v1.2.12 h1:/1iFgWUR3Z+KZU9B4PJegmlQQo6uzQXBZNgOk63SLu4= -sigs.k8s.io/cluster-api v1.2.12/go.mod h1:9+fLUuyRsKediKJYrbsyFj6Bmk59oopXpzj3g6/REM8= -sigs.k8s.io/controller-runtime v0.4.0/go.mod h1:ApC79lpY3PHW9xj/w9pj+lYkLgwAAUZwfXkME1Lajns= -sigs.k8s.io/controller-runtime v0.10.1/go.mod h1:CQp8eyUQZ/Q7PJvnIrB6/hgfTC1kBkGylwsLgOQi1WY= -sigs.k8s.io/controller-runtime v0.12.3 h1:FCM8xeY/FI8hoAfh/V4XbbYMY20gElh9yh+A98usMio= -sigs.k8s.io/controller-runtime v0.12.3/go.mod h1:qKsk4WE6zW2Hfj0G4v10EnNB2jMG1C+NTb8h+DwCoU0= -sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/cli-utils v0.28.0 h1:gsvwqygoXlW2y8CmKdflQJNZp1Yhi4geATW3/Ei7oYc= +sigs.k8s.io/cli-utils v0.28.0/go.mod h1:WDVRa5/eQBKntG++uyKdyT+xU7MLdCR4XsgseqL5uX4= +sigs.k8s.io/cluster-api v1.5.5 h1:MmxTGE8bJvALrJzzuTA2YEP+qKPrpxg7u8AecU93fwc= +sigs.k8s.io/cluster-api v1.5.5/go.mod h1:T50/vFznHz409V1XS74DIiPl9JDH4r2+xHiCYpYRTmc= +sigs.k8s.io/controller-runtime v0.15.3 h1:L+t5heIaI3zeejoIyyvLQs5vTVu/67IU2FfisVzFlBc= +sigs.k8s.io/controller-runtime v0.15.3/go.mod h1:kp4jckA4vTx281S/0Yk2LFEEQe67mjg+ev/yknv47Ds= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/kustomize/api v0.12.1/go.mod h1:y3JUhimkZkR6sbLNwfJHxvo1TCLwuwm14sCYnkH6S1s= -sigs.k8s.io/kustomize/cmd/config v0.10.9/go.mod h1:T0s850zPV3wKfBALA0dyeP/K74jlJcoP8Pr9ZWwE3MQ= -sigs.k8s.io/kustomize/kustomize/v4 v4.5.7/go.mod h1:VSNKEH9D9d9bLiWEGbS6Xbg/Ih0tgQalmPvntzRxZ/Q= -sigs.k8s.io/kustomize/kyaml v0.4.0/go.mod h1:XJL84E6sOFeNrQ7CADiemc1B0EjIxHo3OhW4o1aJYNw= -sigs.k8s.io/kustomize/kyaml v0.12.0/go.mod h1:FTJxEZ86ScK184NpGSAQcfEqee0nul8oLCK30D47m4E= -sigs.k8s.io/kustomize/kyaml v0.13.9/go.mod h1:QsRbD0/KcU+wdk0/L0fIp2KLnohkVzs6fQ85/nOXac4= -sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= -sigs.k8s.io/testing_frameworks v0.1.2/go.mod h1:ToQrwSC3s8Xf/lADdZp3Mktcql9CG0UAmdJG9th5i0w= -sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= From b9f1bd728b82d2aca74cbd72e0f012306ad8faa4 Mon Sep 17 00:00:00 2001 From: Ian Wahbe Date: Mon, 15 Jul 2024 17:09:57 -0700 Subject: [PATCH 2/2] make build_sdks --- sdk/dotnet/Cluster.cs | 4 + sdk/dotnet/GetRoleTemplate.cs | 31 ++ sdk/dotnet/GlobalRole.cs | 6 +- sdk/dotnet/Inputs/ClusterAksConfigV2Args.cs | 6 + .../Inputs/ClusterAksConfigV2GetArgs.cs | 6 + .../Inputs/GetRoleTemplateExternalRule.cs | 80 +++++ .../Inputs/GetRoleTemplateExternalRuleArgs.cs | 80 +++++ .../Inputs/RoleTemplateExternalRuleArgs.cs | 80 +++++ .../Inputs/RoleTemplateExternalRuleGetArgs.cs | 80 +++++ sdk/dotnet/Outputs/ClusterAksConfigV2.cs | 7 + .../Outputs/GetClusterAksConfigV2Result.cs | 7 + .../GetRoleTemplateExternalRuleResult.cs | 56 ++++ .../Outputs/RoleTemplateExternalRule.cs | 56 ++++ sdk/dotnet/RoleTemplate.cs | 30 ++ sdk/go/rancher2/cluster.go | 16 +- sdk/go/rancher2/getRoleTemplate.go | 11 + sdk/go/rancher2/globalRole.go | 12 +- sdk/go/rancher2/pulumiTypes.go | 237 ++++++++++----- sdk/go/rancher2/pulumiTypes1.go | 209 +++++++++++++ sdk/go/rancher2/roleTemplate.go | 15 + .../java/com/pulumi/rancher2/Cluster.java | 4 + .../java/com/pulumi/rancher2/GlobalRole.java | 4 +- .../com/pulumi/rancher2/GlobalRoleArgs.java | 10 +- .../com/pulumi/rancher2/RoleTemplate.java | 15 + .../com/pulumi/rancher2/RoleTemplateArgs.java | 48 +++ .../inputs/ClusterAksConfigV2Args.java | 37 +++ .../rancher2/inputs/GetRoleTemplateArgs.java | 49 +++ .../inputs/GetRoleTemplateExternalRule.java | 231 ++++++++++++++ .../GetRoleTemplateExternalRuleArgs.java | 282 ++++++++++++++++++ .../inputs/GetRoleTemplatePlainArgs.java | 39 +++ .../rancher2/inputs/GlobalRoleState.java | 10 +- .../inputs/RoleTemplateExternalRuleArgs.java | 282 ++++++++++++++++++ .../rancher2/inputs/RoleTemplateState.java | 48 +++ .../rancher2/outputs/ClusterAksConfigV2.java | 21 ++ .../outputs/GetClusterAksConfigV2.java | 23 ++ .../outputs/GetRoleTemplateExternalRule.java | 156 ++++++++++ .../outputs/GetRoleTemplateResult.java | 27 ++ .../outputs/RoleTemplateExternalRule.java | 156 ++++++++++ sdk/nodejs/cluster.ts | 4 + sdk/nodejs/getRoleTemplate.ts | 13 + sdk/nodejs/globalRole.ts | 6 +- sdk/nodejs/roleTemplate.ts | 14 + sdk/nodejs/types/input.ts | 73 +++++ sdk/nodejs/types/output.ts | 54 ++++ sdk/python/pulumi_rancher2/_inputs.py | 192 ++++++++++++ sdk/python/pulumi_rancher2/cluster.py | 8 + .../pulumi_rancher2/get_role_template.py | 21 +- sdk/python/pulumi_rancher2/global_role.py | 14 +- sdk/python/pulumi_rancher2/outputs.py | 182 +++++++++++ sdk/python/pulumi_rancher2/role_template.py | 47 +++ 50 files changed, 2989 insertions(+), 110 deletions(-) create mode 100644 sdk/dotnet/Inputs/GetRoleTemplateExternalRule.cs create mode 100644 sdk/dotnet/Inputs/GetRoleTemplateExternalRuleArgs.cs create mode 100644 sdk/dotnet/Inputs/RoleTemplateExternalRuleArgs.cs create mode 100644 sdk/dotnet/Inputs/RoleTemplateExternalRuleGetArgs.cs create mode 100644 sdk/dotnet/Outputs/GetRoleTemplateExternalRuleResult.cs create mode 100644 sdk/dotnet/Outputs/RoleTemplateExternalRule.cs create mode 100644 sdk/java/src/main/java/com/pulumi/rancher2/inputs/GetRoleTemplateExternalRule.java create mode 100644 sdk/java/src/main/java/com/pulumi/rancher2/inputs/GetRoleTemplateExternalRuleArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/rancher2/inputs/RoleTemplateExternalRuleArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/rancher2/outputs/GetRoleTemplateExternalRule.java create mode 100644 sdk/java/src/main/java/com/pulumi/rancher2/outputs/RoleTemplateExternalRule.java diff --git a/sdk/dotnet/Cluster.cs b/sdk/dotnet/Cluster.cs index 1119fe993..f9319bfe9 100644 --- a/sdk/dotnet/Cluster.cs +++ b/sdk/dotnet/Cluster.cs @@ -723,6 +723,10 @@ namespace Pulumi.Rancher2 /// DnsPrefix = "<dns-prefix>", /// KubernetesVersion = "1.24.6", /// NetworkPlugin = "<network-plugin>", + /// VirtualNetwork = "<virtual-network>", + /// VirtualNetworkResourceGroup = "<virtual-network-resource-group>", + /// Subnet = "<subnet>", + /// NodeResourceGroup = "<node-resource-group>", /// NodePools = new[] /// { /// new Rancher2.Inputs.ClusterAksConfigV2NodePoolArgs diff --git a/sdk/dotnet/GetRoleTemplate.cs b/sdk/dotnet/GetRoleTemplate.cs index 23a37618a..1227a6454 100644 --- a/sdk/dotnet/GetRoleTemplate.cs +++ b/sdk/dotnet/GetRoleTemplate.cs @@ -69,6 +69,18 @@ public sealed class GetRoleTemplateArgs : global::Pulumi.InvokeArgs [Input("context")] public string? Context { get; set; } + [Input("externalRules")] + private List? _externalRules; + + /// + /// (Computed) External rules used for authorization. (list) + /// + public List ExternalRules + { + get => _externalRules ?? (_externalRules = new List()); + set => _externalRules = value; + } + /// /// The name of the Role Template (string) /// @@ -89,6 +101,18 @@ public sealed class GetRoleTemplateInvokeArgs : global::Pulumi.InvokeArgs [Input("context")] public Input? Context { get; set; } + [Input("externalRules")] + private InputList? _externalRules; + + /// + /// (Computed) External rules used for authorization. (list) + /// + public InputList ExternalRules + { + get => _externalRules ?? (_externalRules = new InputList()); + set => _externalRules = value; + } + /// /// The name of the Role Template (string) /// @@ -131,6 +155,10 @@ public sealed class GetRoleTemplateResult /// public readonly bool External; /// + /// (Computed) External rules used for authorization. (list) + /// + public readonly ImmutableArray ExternalRules; + /// /// (Computed) Hidden role template (bool) /// public readonly bool Hidden; @@ -172,6 +200,8 @@ private GetRoleTemplateResult( bool external, + ImmutableArray externalRules, + bool hidden, string id, @@ -193,6 +223,7 @@ private GetRoleTemplateResult( DefaultRole = defaultRole; Description = description; External = external; + ExternalRules = externalRules; Hidden = hidden; Id = id; Labels = labels; diff --git a/sdk/dotnet/GlobalRole.cs b/sdk/dotnet/GlobalRole.cs index 2028d1016..d81eb3d46 100644 --- a/sdk/dotnet/GlobalRole.cs +++ b/sdk/dotnet/GlobalRole.cs @@ -81,7 +81,7 @@ public partial class GlobalRole : global::Pulumi.CustomResource public Output Description { get; private set; } = null!; /// - /// Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + /// Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) /// [Output("inheritedClusterRoles")] public Output> InheritedClusterRoles { get; private set; } = null!; @@ -178,7 +178,7 @@ public InputMap Annotations private InputList? _inheritedClusterRoles; /// - /// Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + /// Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) /// public InputList InheritedClusterRoles { @@ -258,7 +258,7 @@ public InputMap Annotations private InputList? _inheritedClusterRoles; /// - /// Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + /// Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) /// public InputList InheritedClusterRoles { diff --git a/sdk/dotnet/Inputs/ClusterAksConfigV2Args.cs b/sdk/dotnet/Inputs/ClusterAksConfigV2Args.cs index 33d7ba24b..c08b14322 100644 --- a/sdk/dotnet/Inputs/ClusterAksConfigV2Args.cs +++ b/sdk/dotnet/Inputs/ClusterAksConfigV2Args.cs @@ -156,6 +156,12 @@ public InputList NodePools set => _nodePools = value; } + /// + /// The AKS node resource group name + /// + [Input("nodeResourceGroup")] + public Input? NodeResourceGroup { get; set; } + /// /// Is AKS cluster private? /// diff --git a/sdk/dotnet/Inputs/ClusterAksConfigV2GetArgs.cs b/sdk/dotnet/Inputs/ClusterAksConfigV2GetArgs.cs index 005e89be0..c70cad97a 100644 --- a/sdk/dotnet/Inputs/ClusterAksConfigV2GetArgs.cs +++ b/sdk/dotnet/Inputs/ClusterAksConfigV2GetArgs.cs @@ -156,6 +156,12 @@ public InputList NodePools set => _nodePools = value; } + /// + /// The AKS node resource group name + /// + [Input("nodeResourceGroup")] + public Input? NodeResourceGroup { get; set; } + /// /// Is AKS cluster private? /// diff --git a/sdk/dotnet/Inputs/GetRoleTemplateExternalRule.cs b/sdk/dotnet/Inputs/GetRoleTemplateExternalRule.cs new file mode 100644 index 000000000..68a9f3e18 --- /dev/null +++ b/sdk/dotnet/Inputs/GetRoleTemplateExternalRule.cs @@ -0,0 +1,80 @@ +// *** 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.Rancher2.Inputs +{ + + public sealed class GetRoleTemplateExternalRuleArgs : global::Pulumi.InvokeArgs + { + [Input("apiGroups")] + private List? _apiGroups; + + /// + /// Policy rule api groups + /// + public List ApiGroups + { + get => _apiGroups ?? (_apiGroups = new List()); + set => _apiGroups = value; + } + + [Input("nonResourceUrls")] + private List? _nonResourceUrls; + + /// + /// Policy rule non resource urls + /// + public List NonResourceUrls + { + get => _nonResourceUrls ?? (_nonResourceUrls = new List()); + set => _nonResourceUrls = value; + } + + [Input("resourceNames")] + private List? _resourceNames; + + /// + /// Policy rule resource names + /// + public List ResourceNames + { + get => _resourceNames ?? (_resourceNames = new List()); + set => _resourceNames = value; + } + + [Input("resources")] + private List? _resources; + + /// + /// Policy rule resources + /// + public List Resources + { + get => _resources ?? (_resources = new List()); + set => _resources = value; + } + + [Input("verbs")] + private List? _verbs; + + /// + /// Policy rule verbs + /// + public List Verbs + { + get => _verbs ?? (_verbs = new List()); + set => _verbs = value; + } + + public GetRoleTemplateExternalRuleArgs() + { + } + public static new GetRoleTemplateExternalRuleArgs Empty => new GetRoleTemplateExternalRuleArgs(); + } +} diff --git a/sdk/dotnet/Inputs/GetRoleTemplateExternalRuleArgs.cs b/sdk/dotnet/Inputs/GetRoleTemplateExternalRuleArgs.cs new file mode 100644 index 000000000..75e221910 --- /dev/null +++ b/sdk/dotnet/Inputs/GetRoleTemplateExternalRuleArgs.cs @@ -0,0 +1,80 @@ +// *** 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.Rancher2.Inputs +{ + + public sealed class GetRoleTemplateExternalRuleInputArgs : global::Pulumi.ResourceArgs + { + [Input("apiGroups")] + private InputList? _apiGroups; + + /// + /// Policy rule api groups + /// + public InputList ApiGroups + { + get => _apiGroups ?? (_apiGroups = new InputList()); + set => _apiGroups = value; + } + + [Input("nonResourceUrls")] + private InputList? _nonResourceUrls; + + /// + /// Policy rule non resource urls + /// + public InputList NonResourceUrls + { + get => _nonResourceUrls ?? (_nonResourceUrls = new InputList()); + set => _nonResourceUrls = value; + } + + [Input("resourceNames")] + private InputList? _resourceNames; + + /// + /// Policy rule resource names + /// + public InputList ResourceNames + { + get => _resourceNames ?? (_resourceNames = new InputList()); + set => _resourceNames = value; + } + + [Input("resources")] + private InputList? _resources; + + /// + /// Policy rule resources + /// + public InputList Resources + { + get => _resources ?? (_resources = new InputList()); + set => _resources = value; + } + + [Input("verbs")] + private InputList? _verbs; + + /// + /// Policy rule verbs + /// + public InputList Verbs + { + get => _verbs ?? (_verbs = new InputList()); + set => _verbs = value; + } + + public GetRoleTemplateExternalRuleInputArgs() + { + } + public static new GetRoleTemplateExternalRuleInputArgs Empty => new GetRoleTemplateExternalRuleInputArgs(); + } +} diff --git a/sdk/dotnet/Inputs/RoleTemplateExternalRuleArgs.cs b/sdk/dotnet/Inputs/RoleTemplateExternalRuleArgs.cs new file mode 100644 index 000000000..62b86ea2e --- /dev/null +++ b/sdk/dotnet/Inputs/RoleTemplateExternalRuleArgs.cs @@ -0,0 +1,80 @@ +// *** 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.Rancher2.Inputs +{ + + public sealed class RoleTemplateExternalRuleArgs : global::Pulumi.ResourceArgs + { + [Input("apiGroups")] + private InputList? _apiGroups; + + /// + /// Policy rule api groups + /// + public InputList ApiGroups + { + get => _apiGroups ?? (_apiGroups = new InputList()); + set => _apiGroups = value; + } + + [Input("nonResourceUrls")] + private InputList? _nonResourceUrls; + + /// + /// Policy rule non resource urls + /// + public InputList NonResourceUrls + { + get => _nonResourceUrls ?? (_nonResourceUrls = new InputList()); + set => _nonResourceUrls = value; + } + + [Input("resourceNames")] + private InputList? _resourceNames; + + /// + /// Policy rule resource names + /// + public InputList ResourceNames + { + get => _resourceNames ?? (_resourceNames = new InputList()); + set => _resourceNames = value; + } + + [Input("resources")] + private InputList? _resources; + + /// + /// Policy rule resources + /// + public InputList Resources + { + get => _resources ?? (_resources = new InputList()); + set => _resources = value; + } + + [Input("verbs")] + private InputList? _verbs; + + /// + /// Policy rule verbs + /// + public InputList Verbs + { + get => _verbs ?? (_verbs = new InputList()); + set => _verbs = value; + } + + public RoleTemplateExternalRuleArgs() + { + } + public static new RoleTemplateExternalRuleArgs Empty => new RoleTemplateExternalRuleArgs(); + } +} diff --git a/sdk/dotnet/Inputs/RoleTemplateExternalRuleGetArgs.cs b/sdk/dotnet/Inputs/RoleTemplateExternalRuleGetArgs.cs new file mode 100644 index 000000000..d41ad5f20 --- /dev/null +++ b/sdk/dotnet/Inputs/RoleTemplateExternalRuleGetArgs.cs @@ -0,0 +1,80 @@ +// *** 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.Rancher2.Inputs +{ + + public sealed class RoleTemplateExternalRuleGetArgs : global::Pulumi.ResourceArgs + { + [Input("apiGroups")] + private InputList? _apiGroups; + + /// + /// Policy rule api groups + /// + public InputList ApiGroups + { + get => _apiGroups ?? (_apiGroups = new InputList()); + set => _apiGroups = value; + } + + [Input("nonResourceUrls")] + private InputList? _nonResourceUrls; + + /// + /// Policy rule non resource urls + /// + public InputList NonResourceUrls + { + get => _nonResourceUrls ?? (_nonResourceUrls = new InputList()); + set => _nonResourceUrls = value; + } + + [Input("resourceNames")] + private InputList? _resourceNames; + + /// + /// Policy rule resource names + /// + public InputList ResourceNames + { + get => _resourceNames ?? (_resourceNames = new InputList()); + set => _resourceNames = value; + } + + [Input("resources")] + private InputList? _resources; + + /// + /// Policy rule resources + /// + public InputList Resources + { + get => _resources ?? (_resources = new InputList()); + set => _resources = value; + } + + [Input("verbs")] + private InputList? _verbs; + + /// + /// Policy rule verbs + /// + public InputList Verbs + { + get => _verbs ?? (_verbs = new InputList()); + set => _verbs = value; + } + + public RoleTemplateExternalRuleGetArgs() + { + } + public static new RoleTemplateExternalRuleGetArgs Empty => new RoleTemplateExternalRuleGetArgs(); + } +} diff --git a/sdk/dotnet/Outputs/ClusterAksConfigV2.cs b/sdk/dotnet/Outputs/ClusterAksConfigV2.cs index fc637079e..c8280b066 100644 --- a/sdk/dotnet/Outputs/ClusterAksConfigV2.cs +++ b/sdk/dotnet/Outputs/ClusterAksConfigV2.cs @@ -102,6 +102,10 @@ public sealed class ClusterAksConfigV2 /// public readonly ImmutableArray NodePools; /// + /// The AKS node resource group name + /// + public readonly string? NodeResourceGroup; + /// /// Is AKS cluster private? /// public readonly bool? PrivateCluster; @@ -176,6 +180,8 @@ private ClusterAksConfigV2( ImmutableArray nodePools, + string? nodeResourceGroup, + bool? privateCluster, string resourceGroup, @@ -212,6 +218,7 @@ private ClusterAksConfigV2( NetworkPolicy = networkPolicy; NetworkServiceCidr = networkServiceCidr; NodePools = nodePools; + NodeResourceGroup = nodeResourceGroup; PrivateCluster = privateCluster; ResourceGroup = resourceGroup; ResourceLocation = resourceLocation; diff --git a/sdk/dotnet/Outputs/GetClusterAksConfigV2Result.cs b/sdk/dotnet/Outputs/GetClusterAksConfigV2Result.cs index 579f4e9fc..5fa4fcad4 100644 --- a/sdk/dotnet/Outputs/GetClusterAksConfigV2Result.cs +++ b/sdk/dotnet/Outputs/GetClusterAksConfigV2Result.cs @@ -102,6 +102,10 @@ public sealed class GetClusterAksConfigV2Result /// public readonly ImmutableArray NodePools; /// + /// The AKS node resource group name + /// + public readonly string NodeResourceGroup; + /// /// Is AKS cluster private? /// public readonly bool PrivateCluster; @@ -176,6 +180,8 @@ private GetClusterAksConfigV2Result( ImmutableArray nodePools, + string nodeResourceGroup, + bool privateCluster, string resourceGroup, @@ -212,6 +218,7 @@ private GetClusterAksConfigV2Result( NetworkPolicy = networkPolicy; NetworkServiceCidr = networkServiceCidr; NodePools = nodePools; + NodeResourceGroup = nodeResourceGroup; PrivateCluster = privateCluster; ResourceGroup = resourceGroup; ResourceLocation = resourceLocation; diff --git a/sdk/dotnet/Outputs/GetRoleTemplateExternalRuleResult.cs b/sdk/dotnet/Outputs/GetRoleTemplateExternalRuleResult.cs new file mode 100644 index 000000000..8dd8803fc --- /dev/null +++ b/sdk/dotnet/Outputs/GetRoleTemplateExternalRuleResult.cs @@ -0,0 +1,56 @@ +// *** 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.Rancher2.Outputs +{ + + [OutputType] + public sealed class GetRoleTemplateExternalRuleResult + { + /// + /// Policy rule api groups + /// + public readonly ImmutableArray ApiGroups; + /// + /// Policy rule non resource urls + /// + public readonly ImmutableArray NonResourceUrls; + /// + /// Policy rule resource names + /// + public readonly ImmutableArray ResourceNames; + /// + /// Policy rule resources + /// + public readonly ImmutableArray Resources; + /// + /// Policy rule verbs + /// + public readonly ImmutableArray Verbs; + + [OutputConstructor] + private GetRoleTemplateExternalRuleResult( + ImmutableArray apiGroups, + + ImmutableArray nonResourceUrls, + + ImmutableArray resourceNames, + + ImmutableArray resources, + + ImmutableArray verbs) + { + ApiGroups = apiGroups; + NonResourceUrls = nonResourceUrls; + ResourceNames = resourceNames; + Resources = resources; + Verbs = verbs; + } + } +} diff --git a/sdk/dotnet/Outputs/RoleTemplateExternalRule.cs b/sdk/dotnet/Outputs/RoleTemplateExternalRule.cs new file mode 100644 index 000000000..ca6cacc3d --- /dev/null +++ b/sdk/dotnet/Outputs/RoleTemplateExternalRule.cs @@ -0,0 +1,56 @@ +// *** 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.Rancher2.Outputs +{ + + [OutputType] + public sealed class RoleTemplateExternalRule + { + /// + /// Policy rule api groups + /// + public readonly ImmutableArray ApiGroups; + /// + /// Policy rule non resource urls + /// + public readonly ImmutableArray NonResourceUrls; + /// + /// Policy rule resource names + /// + public readonly ImmutableArray ResourceNames; + /// + /// Policy rule resources + /// + public readonly ImmutableArray Resources; + /// + /// Policy rule verbs + /// + public readonly ImmutableArray Verbs; + + [OutputConstructor] + private RoleTemplateExternalRule( + ImmutableArray apiGroups, + + ImmutableArray nonResourceUrls, + + ImmutableArray resourceNames, + + ImmutableArray resources, + + ImmutableArray verbs) + { + ApiGroups = apiGroups; + NonResourceUrls = nonResourceUrls; + ResourceNames = resourceNames; + Resources = resources; + Verbs = verbs; + } + } +} diff --git a/sdk/dotnet/RoleTemplate.cs b/sdk/dotnet/RoleTemplate.cs index dabb6f89a..098b25a91 100644 --- a/sdk/dotnet/RoleTemplate.cs +++ b/sdk/dotnet/RoleTemplate.cs @@ -145,6 +145,12 @@ public partial class RoleTemplate : global::Pulumi.CustomResource [Output("external")] public Output External { get; private set; } = null!; + /// + /// External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + /// + [Output("externalRules")] + public Output> ExternalRules { get; private set; } = null!; + /// /// Hidden role template. Default `false` (bool) /// @@ -269,6 +275,18 @@ public InputMap Annotations [Input("external")] public Input? External { get; set; } + [Input("externalRules")] + private InputList? _externalRules; + + /// + /// External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + /// + public InputList ExternalRules + { + get => _externalRules ?? (_externalRules = new InputList()); + set => _externalRules = value; + } + /// /// Hidden role template. Default `false` (bool) /// @@ -379,6 +397,18 @@ public InputMap Annotations [Input("external")] public Input? External { get; set; } + [Input("externalRules")] + private InputList? _externalRules; + + /// + /// External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + /// + public InputList ExternalRules + { + get => _externalRules ?? (_externalRules = new InputList()); + set => _externalRules = value; + } + /// /// Hidden role template. Default `false` (bool) /// diff --git a/sdk/go/rancher2/cluster.go b/sdk/go/rancher2/cluster.go index 05891be04..42de3d67a 100644 --- a/sdk/go/rancher2/cluster.go +++ b/sdk/go/rancher2/cluster.go @@ -767,12 +767,16 @@ import ( // Name: pulumi.String("foo"), // Description: pulumi.String("Terraform AKS cluster"), // AksConfigV2: &rancher2.ClusterAksConfigV2Args{ -// CloudCredentialId: foo_aks.ID(), -// ResourceGroup: pulumi.String(""), -// ResourceLocation: pulumi.String(""), -// DnsPrefix: pulumi.String(""), -// KubernetesVersion: pulumi.String("1.24.6"), -// NetworkPlugin: pulumi.String(""), +// CloudCredentialId: foo_aks.ID(), +// ResourceGroup: pulumi.String(""), +// ResourceLocation: pulumi.String(""), +// DnsPrefix: pulumi.String(""), +// KubernetesVersion: pulumi.String("1.24.6"), +// NetworkPlugin: pulumi.String(""), +// VirtualNetwork: pulumi.String(""), +// VirtualNetworkResourceGroup: pulumi.String(""), +// Subnet: pulumi.String(""), +// NodeResourceGroup: pulumi.String(""), // NodePools: rancher2.ClusterAksConfigV2NodePoolArray{ // &rancher2.ClusterAksConfigV2NodePoolArgs{ // AvailabilityZones: pulumi.StringArray{ diff --git a/sdk/go/rancher2/getRoleTemplate.go b/sdk/go/rancher2/getRoleTemplate.go index 373580616..abf9e190d 100644 --- a/sdk/go/rancher2/getRoleTemplate.go +++ b/sdk/go/rancher2/getRoleTemplate.go @@ -52,6 +52,8 @@ func LookupRoleTemplate(ctx *pulumi.Context, args *LookupRoleTemplateArgs, opts type LookupRoleTemplateArgs struct { // Role template context. `cluster` and `project` values are supported (string) Context *string `pulumi:"context"` + // (Computed) External rules used for authorization. (list) + ExternalRules []GetRoleTemplateExternalRule `pulumi:"externalRules"` // The name of the Role Template (string) Name string `pulumi:"name"` } @@ -71,6 +73,8 @@ type LookupRoleTemplateResult struct { Description string `pulumi:"description"` // (Computed) External role template (bool) External bool `pulumi:"external"` + // (Computed) External rules used for authorization. (list) + ExternalRules []GetRoleTemplateExternalRule `pulumi:"externalRules"` // (Computed) Hidden role template (bool) Hidden bool `pulumi:"hidden"` // The provider-assigned unique ID for this managed resource. @@ -103,6 +107,8 @@ func LookupRoleTemplateOutput(ctx *pulumi.Context, args LookupRoleTemplateOutput type LookupRoleTemplateOutputArgs struct { // Role template context. `cluster` and `project` values are supported (string) Context pulumi.StringPtrInput `pulumi:"context"` + // (Computed) External rules used for authorization. (list) + ExternalRules GetRoleTemplateExternalRuleArrayInput `pulumi:"externalRules"` // The name of the Role Template (string) Name pulumi.StringInput `pulumi:"name"` } @@ -160,6 +166,11 @@ func (o LookupRoleTemplateResultOutput) External() pulumi.BoolOutput { return o.ApplyT(func(v LookupRoleTemplateResult) bool { return v.External }).(pulumi.BoolOutput) } +// (Computed) External rules used for authorization. (list) +func (o LookupRoleTemplateResultOutput) ExternalRules() GetRoleTemplateExternalRuleArrayOutput { + return o.ApplyT(func(v LookupRoleTemplateResult) []GetRoleTemplateExternalRule { return v.ExternalRules }).(GetRoleTemplateExternalRuleArrayOutput) +} + // (Computed) Hidden role template (bool) func (o LookupRoleTemplateResultOutput) Hidden() pulumi.BoolOutput { return o.ApplyT(func(v LookupRoleTemplateResult) bool { return v.Hidden }).(pulumi.BoolOutput) diff --git a/sdk/go/rancher2/globalRole.go b/sdk/go/rancher2/globalRole.go index 4735d4976..c662558ba 100644 --- a/sdk/go/rancher2/globalRole.go +++ b/sdk/go/rancher2/globalRole.go @@ -71,7 +71,7 @@ type GlobalRole struct { Builtin pulumi.BoolOutput `pulumi:"builtin"` // Global role description (string) Description pulumi.StringOutput `pulumi:"description"` - // Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + // Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) InheritedClusterRoles pulumi.StringArrayOutput `pulumi:"inheritedClusterRoles"` // Labels for global role object (map) Labels pulumi.MapOutput `pulumi:"labels"` @@ -119,7 +119,7 @@ type globalRoleState struct { Builtin *bool `pulumi:"builtin"` // Global role description (string) Description *string `pulumi:"description"` - // Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + // Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) InheritedClusterRoles []string `pulumi:"inheritedClusterRoles"` // Labels for global role object (map) Labels map[string]interface{} `pulumi:"labels"` @@ -138,7 +138,7 @@ type GlobalRoleState struct { Builtin pulumi.BoolPtrInput // Global role description (string) Description pulumi.StringPtrInput - // Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + // Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) InheritedClusterRoles pulumi.StringArrayInput // Labels for global role object (map) Labels pulumi.MapInput @@ -159,7 +159,7 @@ type globalRoleArgs struct { Annotations map[string]interface{} `pulumi:"annotations"` // Global role description (string) Description *string `pulumi:"description"` - // Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + // Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) InheritedClusterRoles []string `pulumi:"inheritedClusterRoles"` // Labels for global role object (map) Labels map[string]interface{} `pulumi:"labels"` @@ -177,7 +177,7 @@ type GlobalRoleArgs struct { Annotations pulumi.MapInput // Global role description (string) Description pulumi.StringPtrInput - // Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + // Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) InheritedClusterRoles pulumi.StringArrayInput // Labels for global role object (map) Labels pulumi.MapInput @@ -291,7 +291,7 @@ func (o GlobalRoleOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v *GlobalRole) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput) } -// Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster +// Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) func (o GlobalRoleOutput) InheritedClusterRoles() pulumi.StringArrayOutput { return o.ApplyT(func(v *GlobalRole) pulumi.StringArrayOutput { return v.InheritedClusterRoles }).(pulumi.StringArrayOutput) } diff --git a/sdk/go/rancher2/pulumiTypes.go b/sdk/go/rancher2/pulumiTypes.go index ad236a503..5ebab5d2b 100644 --- a/sdk/go/rancher2/pulumiTypes.go +++ b/sdk/go/rancher2/pulumiTypes.go @@ -2603,6 +2603,8 @@ type ClusterAksConfigV2 struct { NetworkServiceCidr *string `pulumi:"networkServiceCidr"` // The AKS node pools to use. Required if `import=false` NodePools []ClusterAksConfigV2NodePool `pulumi:"nodePools"` + // The AKS node resource group name + NodeResourceGroup *string `pulumi:"nodeResourceGroup"` // Is AKS cluster private? PrivateCluster *bool `pulumi:"privateCluster"` // The AKS resource group @@ -2675,6 +2677,8 @@ type ClusterAksConfigV2Args struct { NetworkServiceCidr pulumi.StringPtrInput `pulumi:"networkServiceCidr"` // The AKS node pools to use. Required if `import=false` NodePools ClusterAksConfigV2NodePoolArrayInput `pulumi:"nodePools"` + // The AKS node resource group name + NodeResourceGroup pulumi.StringPtrInput `pulumi:"nodeResourceGroup"` // Is AKS cluster private? PrivateCluster pulumi.BoolPtrInput `pulumi:"privateCluster"` // The AKS resource group @@ -2878,6 +2882,11 @@ func (o ClusterAksConfigV2Output) NodePools() ClusterAksConfigV2NodePoolArrayOut return o.ApplyT(func(v ClusterAksConfigV2) []ClusterAksConfigV2NodePool { return v.NodePools }).(ClusterAksConfigV2NodePoolArrayOutput) } +// The AKS node resource group name +func (o ClusterAksConfigV2Output) NodeResourceGroup() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterAksConfigV2) *string { return v.NodeResourceGroup }).(pulumi.StringPtrOutput) +} + // Is AKS cluster private? func (o ClusterAksConfigV2Output) PrivateCluster() pulumi.BoolPtrOutput { return o.ApplyT(func(v ClusterAksConfigV2) *bool { return v.PrivateCluster }).(pulumi.BoolPtrOutput) @@ -3157,6 +3166,16 @@ func (o ClusterAksConfigV2PtrOutput) NodePools() ClusterAksConfigV2NodePoolArray }).(ClusterAksConfigV2NodePoolArrayOutput) } +// The AKS node resource group name +func (o ClusterAksConfigV2PtrOutput) NodeResourceGroup() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterAksConfigV2) *string { + if v == nil { + return nil + } + return v.NodeResourceGroup + }).(pulumi.StringPtrOutput) +} + // Is AKS cluster private? func (o ClusterAksConfigV2PtrOutput) PrivateCluster() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ClusterAksConfigV2) *bool { @@ -63179,6 +63198,139 @@ func (o RegistryRegistryArrayOutput) Index(i pulumi.IntInput) RegistryRegistryOu }).(RegistryRegistryOutput) } +type RoleTemplateExternalRule struct { + // Policy rule api groups + ApiGroups []string `pulumi:"apiGroups"` + // Policy rule non resource urls + NonResourceUrls []string `pulumi:"nonResourceUrls"` + // Policy rule resource names + ResourceNames []string `pulumi:"resourceNames"` + // Policy rule resources + Resources []string `pulumi:"resources"` + // Policy rule verbs + Verbs []string `pulumi:"verbs"` +} + +// RoleTemplateExternalRuleInput is an input type that accepts RoleTemplateExternalRuleArgs and RoleTemplateExternalRuleOutput values. +// You can construct a concrete instance of `RoleTemplateExternalRuleInput` via: +// +// RoleTemplateExternalRuleArgs{...} +type RoleTemplateExternalRuleInput interface { + pulumi.Input + + ToRoleTemplateExternalRuleOutput() RoleTemplateExternalRuleOutput + ToRoleTemplateExternalRuleOutputWithContext(context.Context) RoleTemplateExternalRuleOutput +} + +type RoleTemplateExternalRuleArgs struct { + // Policy rule api groups + ApiGroups pulumi.StringArrayInput `pulumi:"apiGroups"` + // Policy rule non resource urls + NonResourceUrls pulumi.StringArrayInput `pulumi:"nonResourceUrls"` + // Policy rule resource names + ResourceNames pulumi.StringArrayInput `pulumi:"resourceNames"` + // Policy rule resources + Resources pulumi.StringArrayInput `pulumi:"resources"` + // Policy rule verbs + Verbs pulumi.StringArrayInput `pulumi:"verbs"` +} + +func (RoleTemplateExternalRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RoleTemplateExternalRule)(nil)).Elem() +} + +func (i RoleTemplateExternalRuleArgs) ToRoleTemplateExternalRuleOutput() RoleTemplateExternalRuleOutput { + return i.ToRoleTemplateExternalRuleOutputWithContext(context.Background()) +} + +func (i RoleTemplateExternalRuleArgs) ToRoleTemplateExternalRuleOutputWithContext(ctx context.Context) RoleTemplateExternalRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoleTemplateExternalRuleOutput) +} + +// RoleTemplateExternalRuleArrayInput is an input type that accepts RoleTemplateExternalRuleArray and RoleTemplateExternalRuleArrayOutput values. +// You can construct a concrete instance of `RoleTemplateExternalRuleArrayInput` via: +// +// RoleTemplateExternalRuleArray{ RoleTemplateExternalRuleArgs{...} } +type RoleTemplateExternalRuleArrayInput interface { + pulumi.Input + + ToRoleTemplateExternalRuleArrayOutput() RoleTemplateExternalRuleArrayOutput + ToRoleTemplateExternalRuleArrayOutputWithContext(context.Context) RoleTemplateExternalRuleArrayOutput +} + +type RoleTemplateExternalRuleArray []RoleTemplateExternalRuleInput + +func (RoleTemplateExternalRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RoleTemplateExternalRule)(nil)).Elem() +} + +func (i RoleTemplateExternalRuleArray) ToRoleTemplateExternalRuleArrayOutput() RoleTemplateExternalRuleArrayOutput { + return i.ToRoleTemplateExternalRuleArrayOutputWithContext(context.Background()) +} + +func (i RoleTemplateExternalRuleArray) ToRoleTemplateExternalRuleArrayOutputWithContext(ctx context.Context) RoleTemplateExternalRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoleTemplateExternalRuleArrayOutput) +} + +type RoleTemplateExternalRuleOutput struct{ *pulumi.OutputState } + +func (RoleTemplateExternalRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoleTemplateExternalRule)(nil)).Elem() +} + +func (o RoleTemplateExternalRuleOutput) ToRoleTemplateExternalRuleOutput() RoleTemplateExternalRuleOutput { + return o +} + +func (o RoleTemplateExternalRuleOutput) ToRoleTemplateExternalRuleOutputWithContext(ctx context.Context) RoleTemplateExternalRuleOutput { + return o +} + +// Policy rule api groups +func (o RoleTemplateExternalRuleOutput) ApiGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v RoleTemplateExternalRule) []string { return v.ApiGroups }).(pulumi.StringArrayOutput) +} + +// Policy rule non resource urls +func (o RoleTemplateExternalRuleOutput) NonResourceUrls() pulumi.StringArrayOutput { + return o.ApplyT(func(v RoleTemplateExternalRule) []string { return v.NonResourceUrls }).(pulumi.StringArrayOutput) +} + +// Policy rule resource names +func (o RoleTemplateExternalRuleOutput) ResourceNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v RoleTemplateExternalRule) []string { return v.ResourceNames }).(pulumi.StringArrayOutput) +} + +// Policy rule resources +func (o RoleTemplateExternalRuleOutput) Resources() pulumi.StringArrayOutput { + return o.ApplyT(func(v RoleTemplateExternalRule) []string { return v.Resources }).(pulumi.StringArrayOutput) +} + +// Policy rule verbs +func (o RoleTemplateExternalRuleOutput) Verbs() pulumi.StringArrayOutput { + return o.ApplyT(func(v RoleTemplateExternalRule) []string { return v.Verbs }).(pulumi.StringArrayOutput) +} + +type RoleTemplateExternalRuleArrayOutput struct{ *pulumi.OutputState } + +func (RoleTemplateExternalRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RoleTemplateExternalRule)(nil)).Elem() +} + +func (o RoleTemplateExternalRuleArrayOutput) ToRoleTemplateExternalRuleArrayOutput() RoleTemplateExternalRuleArrayOutput { + return o +} + +func (o RoleTemplateExternalRuleArrayOutput) ToRoleTemplateExternalRuleArrayOutputWithContext(ctx context.Context) RoleTemplateExternalRuleArrayOutput { + return o +} + +func (o RoleTemplateExternalRuleArrayOutput) Index(i pulumi.IntInput) RoleTemplateExternalRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RoleTemplateExternalRule { + return vs[0].([]RoleTemplateExternalRule)[vs[1].(int)] + }).(RoleTemplateExternalRuleOutput) +} + type RoleTemplateRule struct { // Policy rule api groups ApiGroups []string `pulumi:"apiGroups"` @@ -63757,6 +63909,8 @@ type GetClusterAksConfigV2 struct { NetworkServiceCidr string `pulumi:"networkServiceCidr"` // The AKS node pools to use. Required if `import=false` NodePools []GetClusterAksConfigV2NodePool `pulumi:"nodePools"` + // The AKS node resource group name + NodeResourceGroup string `pulumi:"nodeResourceGroup"` // Is AKS cluster private? PrivateCluster bool `pulumi:"privateCluster"` // The AKS resource group @@ -63829,6 +63983,8 @@ type GetClusterAksConfigV2Args struct { NetworkServiceCidr pulumi.StringInput `pulumi:"networkServiceCidr"` // The AKS node pools to use. Required if `import=false` NodePools GetClusterAksConfigV2NodePoolArrayInput `pulumi:"nodePools"` + // The AKS node resource group name + NodeResourceGroup pulumi.StringInput `pulumi:"nodeResourceGroup"` // Is AKS cluster private? PrivateCluster pulumi.BoolInput `pulumi:"privateCluster"` // The AKS resource group @@ -63981,6 +64137,11 @@ func (o GetClusterAksConfigV2Output) NodePools() GetClusterAksConfigV2NodePoolAr return o.ApplyT(func(v GetClusterAksConfigV2) []GetClusterAksConfigV2NodePool { return v.NodePools }).(GetClusterAksConfigV2NodePoolArrayOutput) } +// The AKS node resource group name +func (o GetClusterAksConfigV2Output) NodeResourceGroup() pulumi.StringOutput { + return o.ApplyT(func(v GetClusterAksConfigV2) string { return v.NodeResourceGroup }).(pulumi.StringOutput) +} + // Is AKS cluster private? func (o GetClusterAksConfigV2Output) PrivateCluster() pulumi.BoolOutput { return o.ApplyT(func(v GetClusterAksConfigV2) bool { return v.PrivateCluster }).(pulumi.BoolOutput) @@ -96873,76 +97034,6 @@ func (o GetNotifierPagerdutyConfigOutput) ServiceKey() pulumi.StringOutput { return o.ApplyT(func(v GetNotifierPagerdutyConfig) string { return v.ServiceKey }).(pulumi.StringOutput) } -type GetNotifierSlackConfig struct { - // Slack default channel - DefaultRecipient string `pulumi:"defaultRecipient"` - // Slack proxy URL - ProxyUrl *string `pulumi:"proxyUrl"` - // Slack URL - Url string `pulumi:"url"` -} - -// GetNotifierSlackConfigInput is an input type that accepts GetNotifierSlackConfigArgs and GetNotifierSlackConfigOutput values. -// You can construct a concrete instance of `GetNotifierSlackConfigInput` via: -// -// GetNotifierSlackConfigArgs{...} -type GetNotifierSlackConfigInput interface { - pulumi.Input - - ToGetNotifierSlackConfigOutput() GetNotifierSlackConfigOutput - ToGetNotifierSlackConfigOutputWithContext(context.Context) GetNotifierSlackConfigOutput -} - -type GetNotifierSlackConfigArgs struct { - // Slack default channel - DefaultRecipient pulumi.StringInput `pulumi:"defaultRecipient"` - // Slack proxy URL - ProxyUrl pulumi.StringPtrInput `pulumi:"proxyUrl"` - // Slack URL - Url pulumi.StringInput `pulumi:"url"` -} - -func (GetNotifierSlackConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GetNotifierSlackConfig)(nil)).Elem() -} - -func (i GetNotifierSlackConfigArgs) ToGetNotifierSlackConfigOutput() GetNotifierSlackConfigOutput { - return i.ToGetNotifierSlackConfigOutputWithContext(context.Background()) -} - -func (i GetNotifierSlackConfigArgs) ToGetNotifierSlackConfigOutputWithContext(ctx context.Context) GetNotifierSlackConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetNotifierSlackConfigOutput) -} - -type GetNotifierSlackConfigOutput struct{ *pulumi.OutputState } - -func (GetNotifierSlackConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GetNotifierSlackConfig)(nil)).Elem() -} - -func (o GetNotifierSlackConfigOutput) ToGetNotifierSlackConfigOutput() GetNotifierSlackConfigOutput { - return o -} - -func (o GetNotifierSlackConfigOutput) ToGetNotifierSlackConfigOutputWithContext(ctx context.Context) GetNotifierSlackConfigOutput { - return o -} - -// Slack default channel -func (o GetNotifierSlackConfigOutput) DefaultRecipient() pulumi.StringOutput { - return o.ApplyT(func(v GetNotifierSlackConfig) string { return v.DefaultRecipient }).(pulumi.StringOutput) -} - -// Slack proxy URL -func (o GetNotifierSlackConfigOutput) ProxyUrl() pulumi.StringPtrOutput { - return o.ApplyT(func(v GetNotifierSlackConfig) *string { return v.ProxyUrl }).(pulumi.StringPtrOutput) -} - -// Slack URL -func (o GetNotifierSlackConfigOutput) Url() pulumi.StringOutput { - return o.ApplyT(func(v GetNotifierSlackConfig) string { return v.Url }).(pulumi.StringOutput) -} - func init() { pulumi.RegisterInputType(reflect.TypeOf((*CloudCredentialAmazonec2CredentialConfigInput)(nil)).Elem(), CloudCredentialAmazonec2CredentialConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CloudCredentialAmazonec2CredentialConfigPtrInput)(nil)).Elem(), CloudCredentialAmazonec2CredentialConfigArgs{}) @@ -97511,6 +97602,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ProjectResourceQuotaProjectLimitPtrInput)(nil)).Elem(), ProjectResourceQuotaProjectLimitArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RegistryRegistryInput)(nil)).Elem(), RegistryRegistryArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RegistryRegistryArrayInput)(nil)).Elem(), RegistryRegistryArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RoleTemplateExternalRuleInput)(nil)).Elem(), RoleTemplateExternalRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RoleTemplateExternalRuleArrayInput)(nil)).Elem(), RoleTemplateExternalRuleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*RoleTemplateRuleInput)(nil)).Elem(), RoleTemplateRuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RoleTemplateRuleArrayInput)(nil)).Elem(), RoleTemplateRuleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAksConfigInput)(nil)).Elem(), GetClusterAksConfigArgs{}) @@ -97861,7 +97954,6 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetNotifierMsteamsConfigInput)(nil)).Elem(), GetNotifierMsteamsConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetNotifierMsteamsConfigPtrInput)(nil)).Elem(), GetNotifierMsteamsConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetNotifierPagerdutyConfigInput)(nil)).Elem(), GetNotifierPagerdutyConfigArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetNotifierSlackConfigInput)(nil)).Elem(), GetNotifierSlackConfigArgs{}) pulumi.RegisterOutputType(CloudCredentialAmazonec2CredentialConfigOutput{}) pulumi.RegisterOutputType(CloudCredentialAmazonec2CredentialConfigPtrOutput{}) pulumi.RegisterOutputType(CloudCredentialAzureCredentialConfigOutput{}) @@ -98429,6 +98521,8 @@ func init() { pulumi.RegisterOutputType(ProjectResourceQuotaProjectLimitPtrOutput{}) pulumi.RegisterOutputType(RegistryRegistryOutput{}) pulumi.RegisterOutputType(RegistryRegistryArrayOutput{}) + pulumi.RegisterOutputType(RoleTemplateExternalRuleOutput{}) + pulumi.RegisterOutputType(RoleTemplateExternalRuleArrayOutput{}) pulumi.RegisterOutputType(RoleTemplateRuleOutput{}) pulumi.RegisterOutputType(RoleTemplateRuleArrayOutput{}) pulumi.RegisterOutputType(GetClusterAksConfigOutput{}) @@ -98779,5 +98873,4 @@ func init() { pulumi.RegisterOutputType(GetNotifierMsteamsConfigOutput{}) pulumi.RegisterOutputType(GetNotifierMsteamsConfigPtrOutput{}) pulumi.RegisterOutputType(GetNotifierPagerdutyConfigOutput{}) - pulumi.RegisterOutputType(GetNotifierSlackConfigOutput{}) } diff --git a/sdk/go/rancher2/pulumiTypes1.go b/sdk/go/rancher2/pulumiTypes1.go index e910c163a..2a0e6bd80 100644 --- a/sdk/go/rancher2/pulumiTypes1.go +++ b/sdk/go/rancher2/pulumiTypes1.go @@ -13,6 +13,76 @@ import ( var _ = internal.GetEnvOrDefault +type GetNotifierSlackConfig struct { + // Slack default channel + DefaultRecipient string `pulumi:"defaultRecipient"` + // Slack proxy URL + ProxyUrl *string `pulumi:"proxyUrl"` + // Slack URL + Url string `pulumi:"url"` +} + +// GetNotifierSlackConfigInput is an input type that accepts GetNotifierSlackConfigArgs and GetNotifierSlackConfigOutput values. +// You can construct a concrete instance of `GetNotifierSlackConfigInput` via: +// +// GetNotifierSlackConfigArgs{...} +type GetNotifierSlackConfigInput interface { + pulumi.Input + + ToGetNotifierSlackConfigOutput() GetNotifierSlackConfigOutput + ToGetNotifierSlackConfigOutputWithContext(context.Context) GetNotifierSlackConfigOutput +} + +type GetNotifierSlackConfigArgs struct { + // Slack default channel + DefaultRecipient pulumi.StringInput `pulumi:"defaultRecipient"` + // Slack proxy URL + ProxyUrl pulumi.StringPtrInput `pulumi:"proxyUrl"` + // Slack URL + Url pulumi.StringInput `pulumi:"url"` +} + +func (GetNotifierSlackConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetNotifierSlackConfig)(nil)).Elem() +} + +func (i GetNotifierSlackConfigArgs) ToGetNotifierSlackConfigOutput() GetNotifierSlackConfigOutput { + return i.ToGetNotifierSlackConfigOutputWithContext(context.Background()) +} + +func (i GetNotifierSlackConfigArgs) ToGetNotifierSlackConfigOutputWithContext(ctx context.Context) GetNotifierSlackConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetNotifierSlackConfigOutput) +} + +type GetNotifierSlackConfigOutput struct{ *pulumi.OutputState } + +func (GetNotifierSlackConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetNotifierSlackConfig)(nil)).Elem() +} + +func (o GetNotifierSlackConfigOutput) ToGetNotifierSlackConfigOutput() GetNotifierSlackConfigOutput { + return o +} + +func (o GetNotifierSlackConfigOutput) ToGetNotifierSlackConfigOutputWithContext(ctx context.Context) GetNotifierSlackConfigOutput { + return o +} + +// Slack default channel +func (o GetNotifierSlackConfigOutput) DefaultRecipient() pulumi.StringOutput { + return o.ApplyT(func(v GetNotifierSlackConfig) string { return v.DefaultRecipient }).(pulumi.StringOutput) +} + +// Slack proxy URL +func (o GetNotifierSlackConfigOutput) ProxyUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetNotifierSlackConfig) *string { return v.ProxyUrl }).(pulumi.StringPtrOutput) +} + +// Slack URL +func (o GetNotifierSlackConfigOutput) Url() pulumi.StringOutput { + return o.ApplyT(func(v GetNotifierSlackConfig) string { return v.Url }).(pulumi.StringOutput) +} + type GetNotifierSmtpConfig struct { // SMTP default recipient address DefaultRecipient string `pulumi:"defaultRecipient"` @@ -3247,6 +3317,139 @@ func (o GetRegistryRegistryArrayOutput) Index(i pulumi.IntInput) GetRegistryRegi }).(GetRegistryRegistryOutput) } +type GetRoleTemplateExternalRule struct { + // Policy rule api groups + ApiGroups []string `pulumi:"apiGroups"` + // Policy rule non resource urls + NonResourceUrls []string `pulumi:"nonResourceUrls"` + // Policy rule resource names + ResourceNames []string `pulumi:"resourceNames"` + // Policy rule resources + Resources []string `pulumi:"resources"` + // Policy rule verbs + Verbs []string `pulumi:"verbs"` +} + +// GetRoleTemplateExternalRuleInput is an input type that accepts GetRoleTemplateExternalRuleArgs and GetRoleTemplateExternalRuleOutput values. +// You can construct a concrete instance of `GetRoleTemplateExternalRuleInput` via: +// +// GetRoleTemplateExternalRuleArgs{...} +type GetRoleTemplateExternalRuleInput interface { + pulumi.Input + + ToGetRoleTemplateExternalRuleOutput() GetRoleTemplateExternalRuleOutput + ToGetRoleTemplateExternalRuleOutputWithContext(context.Context) GetRoleTemplateExternalRuleOutput +} + +type GetRoleTemplateExternalRuleArgs struct { + // Policy rule api groups + ApiGroups pulumi.StringArrayInput `pulumi:"apiGroups"` + // Policy rule non resource urls + NonResourceUrls pulumi.StringArrayInput `pulumi:"nonResourceUrls"` + // Policy rule resource names + ResourceNames pulumi.StringArrayInput `pulumi:"resourceNames"` + // Policy rule resources + Resources pulumi.StringArrayInput `pulumi:"resources"` + // Policy rule verbs + Verbs pulumi.StringArrayInput `pulumi:"verbs"` +} + +func (GetRoleTemplateExternalRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetRoleTemplateExternalRule)(nil)).Elem() +} + +func (i GetRoleTemplateExternalRuleArgs) ToGetRoleTemplateExternalRuleOutput() GetRoleTemplateExternalRuleOutput { + return i.ToGetRoleTemplateExternalRuleOutputWithContext(context.Background()) +} + +func (i GetRoleTemplateExternalRuleArgs) ToGetRoleTemplateExternalRuleOutputWithContext(ctx context.Context) GetRoleTemplateExternalRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetRoleTemplateExternalRuleOutput) +} + +// GetRoleTemplateExternalRuleArrayInput is an input type that accepts GetRoleTemplateExternalRuleArray and GetRoleTemplateExternalRuleArrayOutput values. +// You can construct a concrete instance of `GetRoleTemplateExternalRuleArrayInput` via: +// +// GetRoleTemplateExternalRuleArray{ GetRoleTemplateExternalRuleArgs{...} } +type GetRoleTemplateExternalRuleArrayInput interface { + pulumi.Input + + ToGetRoleTemplateExternalRuleArrayOutput() GetRoleTemplateExternalRuleArrayOutput + ToGetRoleTemplateExternalRuleArrayOutputWithContext(context.Context) GetRoleTemplateExternalRuleArrayOutput +} + +type GetRoleTemplateExternalRuleArray []GetRoleTemplateExternalRuleInput + +func (GetRoleTemplateExternalRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetRoleTemplateExternalRule)(nil)).Elem() +} + +func (i GetRoleTemplateExternalRuleArray) ToGetRoleTemplateExternalRuleArrayOutput() GetRoleTemplateExternalRuleArrayOutput { + return i.ToGetRoleTemplateExternalRuleArrayOutputWithContext(context.Background()) +} + +func (i GetRoleTemplateExternalRuleArray) ToGetRoleTemplateExternalRuleArrayOutputWithContext(ctx context.Context) GetRoleTemplateExternalRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetRoleTemplateExternalRuleArrayOutput) +} + +type GetRoleTemplateExternalRuleOutput struct{ *pulumi.OutputState } + +func (GetRoleTemplateExternalRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetRoleTemplateExternalRule)(nil)).Elem() +} + +func (o GetRoleTemplateExternalRuleOutput) ToGetRoleTemplateExternalRuleOutput() GetRoleTemplateExternalRuleOutput { + return o +} + +func (o GetRoleTemplateExternalRuleOutput) ToGetRoleTemplateExternalRuleOutputWithContext(ctx context.Context) GetRoleTemplateExternalRuleOutput { + return o +} + +// Policy rule api groups +func (o GetRoleTemplateExternalRuleOutput) ApiGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetRoleTemplateExternalRule) []string { return v.ApiGroups }).(pulumi.StringArrayOutput) +} + +// Policy rule non resource urls +func (o GetRoleTemplateExternalRuleOutput) NonResourceUrls() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetRoleTemplateExternalRule) []string { return v.NonResourceUrls }).(pulumi.StringArrayOutput) +} + +// Policy rule resource names +func (o GetRoleTemplateExternalRuleOutput) ResourceNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetRoleTemplateExternalRule) []string { return v.ResourceNames }).(pulumi.StringArrayOutput) +} + +// Policy rule resources +func (o GetRoleTemplateExternalRuleOutput) Resources() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetRoleTemplateExternalRule) []string { return v.Resources }).(pulumi.StringArrayOutput) +} + +// Policy rule verbs +func (o GetRoleTemplateExternalRuleOutput) Verbs() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetRoleTemplateExternalRule) []string { return v.Verbs }).(pulumi.StringArrayOutput) +} + +type GetRoleTemplateExternalRuleArrayOutput struct{ *pulumi.OutputState } + +func (GetRoleTemplateExternalRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetRoleTemplateExternalRule)(nil)).Elem() +} + +func (o GetRoleTemplateExternalRuleArrayOutput) ToGetRoleTemplateExternalRuleArrayOutput() GetRoleTemplateExternalRuleArrayOutput { + return o +} + +func (o GetRoleTemplateExternalRuleArrayOutput) ToGetRoleTemplateExternalRuleArrayOutputWithContext(ctx context.Context) GetRoleTemplateExternalRuleArrayOutput { + return o +} + +func (o GetRoleTemplateExternalRuleArrayOutput) Index(i pulumi.IntInput) GetRoleTemplateExternalRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetRoleTemplateExternalRule { + return vs[0].([]GetRoleTemplateExternalRule)[vs[1].(int)] + }).(GetRoleTemplateExternalRuleOutput) +} + type GetRoleTemplateRule struct { // Policy rule api groups ApiGroups []string `pulumi:"apiGroups"` @@ -3381,6 +3584,7 @@ func (o GetRoleTemplateRuleArrayOutput) Index(i pulumi.IntInput) GetRoleTemplate } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GetNotifierSlackConfigInput)(nil)).Elem(), GetNotifierSlackConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetNotifierSmtpConfigInput)(nil)).Elem(), GetNotifierSmtpConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetNotifierWebhookConfigInput)(nil)).Elem(), GetNotifierWebhookConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetNotifierWechatConfigInput)(nil)).Elem(), GetNotifierWechatConfigArgs{}) @@ -3427,8 +3631,11 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetProjectResourceQuotaProjectLimitInput)(nil)).Elem(), GetProjectResourceQuotaProjectLimitArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetRegistryRegistryInput)(nil)).Elem(), GetRegistryRegistryArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetRegistryRegistryArrayInput)(nil)).Elem(), GetRegistryRegistryArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetRoleTemplateExternalRuleInput)(nil)).Elem(), GetRoleTemplateExternalRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetRoleTemplateExternalRuleArrayInput)(nil)).Elem(), GetRoleTemplateExternalRuleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetRoleTemplateRuleInput)(nil)).Elem(), GetRoleTemplateRuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetRoleTemplateRuleArrayInput)(nil)).Elem(), GetRoleTemplateRuleArray{}) + pulumi.RegisterOutputType(GetNotifierSlackConfigOutput{}) pulumi.RegisterOutputType(GetNotifierSmtpConfigOutput{}) pulumi.RegisterOutputType(GetNotifierWebhookConfigOutput{}) pulumi.RegisterOutputType(GetNotifierWechatConfigOutput{}) @@ -3475,6 +3682,8 @@ func init() { pulumi.RegisterOutputType(GetProjectResourceQuotaProjectLimitOutput{}) pulumi.RegisterOutputType(GetRegistryRegistryOutput{}) pulumi.RegisterOutputType(GetRegistryRegistryArrayOutput{}) + pulumi.RegisterOutputType(GetRoleTemplateExternalRuleOutput{}) + pulumi.RegisterOutputType(GetRoleTemplateExternalRuleArrayOutput{}) pulumi.RegisterOutputType(GetRoleTemplateRuleOutput{}) pulumi.RegisterOutputType(GetRoleTemplateRuleArrayOutput{}) } diff --git a/sdk/go/rancher2/roleTemplate.go b/sdk/go/rancher2/roleTemplate.go index e98182b3c..edf5b762c 100644 --- a/sdk/go/rancher2/roleTemplate.go +++ b/sdk/go/rancher2/roleTemplate.go @@ -123,6 +123,8 @@ type RoleTemplate struct { Description pulumi.StringOutput `pulumi:"description"` // External role template. Default `false` (bool) External pulumi.BoolPtrOutput `pulumi:"external"` + // External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + ExternalRules RoleTemplateExternalRuleArrayOutput `pulumi:"externalRules"` // Hidden role template. Default `false` (bool) Hidden pulumi.BoolPtrOutput `pulumi:"hidden"` // Labels for role template object (map) @@ -181,6 +183,8 @@ type roleTemplateState struct { Description *string `pulumi:"description"` // External role template. Default `false` (bool) External *bool `pulumi:"external"` + // External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + ExternalRules []RoleTemplateExternalRule `pulumi:"externalRules"` // Hidden role template. Default `false` (bool) Hidden *bool `pulumi:"hidden"` // Labels for role template object (map) @@ -210,6 +214,8 @@ type RoleTemplateState struct { Description pulumi.StringPtrInput // External role template. Default `false` (bool) External pulumi.BoolPtrInput + // External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + ExternalRules RoleTemplateExternalRuleArrayInput // Hidden role template. Default `false` (bool) Hidden pulumi.BoolPtrInput // Labels for role template object (map) @@ -241,6 +247,8 @@ type roleTemplateArgs struct { Description *string `pulumi:"description"` // External role template. Default `false` (bool) External *bool `pulumi:"external"` + // External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + ExternalRules []RoleTemplateExternalRule `pulumi:"externalRules"` // Hidden role template. Default `false` (bool) Hidden *bool `pulumi:"hidden"` // Labels for role template object (map) @@ -269,6 +277,8 @@ type RoleTemplateArgs struct { Description pulumi.StringPtrInput // External role template. Default `false` (bool) External pulumi.BoolPtrInput + // External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + ExternalRules RoleTemplateExternalRuleArrayInput // Hidden role template. Default `false` (bool) Hidden pulumi.BoolPtrInput // Labels for role template object (map) @@ -405,6 +415,11 @@ func (o RoleTemplateOutput) External() pulumi.BoolPtrOutput { return o.ApplyT(func(v *RoleTemplate) pulumi.BoolPtrOutput { return v.External }).(pulumi.BoolPtrOutput) } +// External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) +func (o RoleTemplateOutput) ExternalRules() RoleTemplateExternalRuleArrayOutput { + return o.ApplyT(func(v *RoleTemplate) RoleTemplateExternalRuleArrayOutput { return v.ExternalRules }).(RoleTemplateExternalRuleArrayOutput) +} + // Hidden role template. Default `false` (bool) func (o RoleTemplateOutput) Hidden() pulumi.BoolPtrOutput { return o.ApplyT(func(v *RoleTemplate) pulumi.BoolPtrOutput { return v.Hidden }).(pulumi.BoolPtrOutput) diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/Cluster.java b/sdk/java/src/main/java/com/pulumi/rancher2/Cluster.java index baebd9135..35aa0e5d5 100644 --- a/sdk/java/src/main/java/com/pulumi/rancher2/Cluster.java +++ b/sdk/java/src/main/java/com/pulumi/rancher2/Cluster.java @@ -917,6 +917,10 @@ * .dnsPrefix("") * .kubernetesVersion("1.24.6") * .networkPlugin("") + * .virtualNetwork("") + * .virtualNetworkResourceGroup("") + * .subnet("") + * .nodeResourceGroup("") * .nodePools( * ClusterAksConfigV2NodePoolArgs.builder() * .availabilityZones( diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/GlobalRole.java b/sdk/java/src/main/java/com/pulumi/rancher2/GlobalRole.java index 5bba9e770..01d16cc73 100644 --- a/sdk/java/src/main/java/com/pulumi/rancher2/GlobalRole.java +++ b/sdk/java/src/main/java/com/pulumi/rancher2/GlobalRole.java @@ -120,14 +120,14 @@ public Output description() { return this.description; } /** - * Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + * Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) * */ @Export(name="inheritedClusterRoles", refs={List.class,String.class}, tree="[0,1]") private Output> inheritedClusterRoles; /** - * @return Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + * @return Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) * */ public Output>> inheritedClusterRoles() { diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/GlobalRoleArgs.java b/sdk/java/src/main/java/com/pulumi/rancher2/GlobalRoleArgs.java index df411e619..43200e89a 100644 --- a/sdk/java/src/main/java/com/pulumi/rancher2/GlobalRoleArgs.java +++ b/sdk/java/src/main/java/com/pulumi/rancher2/GlobalRoleArgs.java @@ -51,14 +51,14 @@ public Optional> description() { } /** - * Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + * Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) * */ @Import(name="inheritedClusterRoles") private @Nullable Output> inheritedClusterRoles; /** - * @return Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + * @return Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) * */ public Optional>> inheritedClusterRoles() { @@ -198,7 +198,7 @@ public Builder description(String description) { } /** - * @param inheritedClusterRoles Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + * @param inheritedClusterRoles Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) * * @return builder * @@ -209,7 +209,7 @@ public Builder inheritedClusterRoles(@Nullable Output> inheritedClu } /** - * @param inheritedClusterRoles Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + * @param inheritedClusterRoles Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) * * @return builder * @@ -219,7 +219,7 @@ public Builder inheritedClusterRoles(List inheritedClusterRoles) { } /** - * @param inheritedClusterRoles Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + * @param inheritedClusterRoles Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/RoleTemplate.java b/sdk/java/src/main/java/com/pulumi/rancher2/RoleTemplate.java index 1652ba66b..adc513282 100644 --- a/sdk/java/src/main/java/com/pulumi/rancher2/RoleTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/rancher2/RoleTemplate.java @@ -10,6 +10,7 @@ import com.pulumi.rancher2.RoleTemplateArgs; import com.pulumi.rancher2.Utilities; import com.pulumi.rancher2.inputs.RoleTemplateState; +import com.pulumi.rancher2.outputs.RoleTemplateExternalRule; import com.pulumi.rancher2.outputs.RoleTemplateRule; import java.lang.Boolean; import java.lang.Object; @@ -221,6 +222,20 @@ public Output description() { public Output> external() { return Codegen.optional(this.external); } + /** + * External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + * + */ + @Export(name="externalRules", refs={List.class,RoleTemplateExternalRule.class}, tree="[0,1]") + private Output> externalRules; + + /** + * @return External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + * + */ + public Output> externalRules() { + return this.externalRules; + } /** * Hidden role template. Default `false` (bool) * diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/RoleTemplateArgs.java b/sdk/java/src/main/java/com/pulumi/rancher2/RoleTemplateArgs.java index 4adf327a9..3f8388652 100644 --- a/sdk/java/src/main/java/com/pulumi/rancher2/RoleTemplateArgs.java +++ b/sdk/java/src/main/java/com/pulumi/rancher2/RoleTemplateArgs.java @@ -5,6 +5,7 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; +import com.pulumi.rancher2.inputs.RoleTemplateExternalRuleArgs; import com.pulumi.rancher2.inputs.RoleTemplateRuleArgs; import java.lang.Boolean; import java.lang.Object; @@ -110,6 +111,21 @@ public Optional> external() { return Optional.ofNullable(this.external); } + /** + * External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + * + */ + @Import(name="externalRules") + private @Nullable Output> externalRules; + + /** + * @return External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + * + */ + public Optional>> externalRules() { + return Optional.ofNullable(this.externalRules); + } + /** * Hidden role template. Default `false` (bool) * @@ -209,6 +225,7 @@ private RoleTemplateArgs(RoleTemplateArgs $) { this.defaultRole = $.defaultRole; this.description = $.description; this.external = $.external; + this.externalRules = $.externalRules; this.hidden = $.hidden; this.labels = $.labels; this.locked = $.locked; @@ -361,6 +378,37 @@ public Builder external(Boolean external) { return external(Output.of(external)); } + /** + * @param externalRules External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + * + * @return builder + * + */ + public Builder externalRules(@Nullable Output> externalRules) { + $.externalRules = externalRules; + return this; + } + + /** + * @param externalRules External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + * + * @return builder + * + */ + public Builder externalRules(List externalRules) { + return externalRules(Output.of(externalRules)); + } + + /** + * @param externalRules External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + * + * @return builder + * + */ + public Builder externalRules(RoleTemplateExternalRuleArgs... externalRules) { + return externalRules(List.of(externalRules)); + } + /** * @param hidden Hidden role template. Default `false` (bool) * diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/inputs/ClusterAksConfigV2Args.java b/sdk/java/src/main/java/com/pulumi/rancher2/inputs/ClusterAksConfigV2Args.java index 351515acf..866ea7ff0 100644 --- a/sdk/java/src/main/java/com/pulumi/rancher2/inputs/ClusterAksConfigV2Args.java +++ b/sdk/java/src/main/java/com/pulumi/rancher2/inputs/ClusterAksConfigV2Args.java @@ -351,6 +351,21 @@ public Optional>> nodePools() { return Optional.ofNullable(this.nodePools); } + /** + * The AKS node resource group name + * + */ + @Import(name="nodeResourceGroup") + private @Nullable Output nodeResourceGroup; + + /** + * @return The AKS node resource group name + * + */ + public Optional> nodeResourceGroup() { + return Optional.ofNullable(this.nodeResourceGroup); + } + /** * Is AKS cluster private? * @@ -481,6 +496,7 @@ private ClusterAksConfigV2Args(ClusterAksConfigV2Args $) { this.networkPolicy = $.networkPolicy; this.networkServiceCidr = $.networkServiceCidr; this.nodePools = $.nodePools; + this.nodeResourceGroup = $.nodeResourceGroup; this.privateCluster = $.privateCluster; this.resourceGroup = $.resourceGroup; this.resourceLocation = $.resourceLocation; @@ -990,6 +1006,27 @@ public Builder nodePools(ClusterAksConfigV2NodePoolArgs... nodePools) { return nodePools(List.of(nodePools)); } + /** + * @param nodeResourceGroup The AKS node resource group name + * + * @return builder + * + */ + public Builder nodeResourceGroup(@Nullable Output nodeResourceGroup) { + $.nodeResourceGroup = nodeResourceGroup; + return this; + } + + /** + * @param nodeResourceGroup The AKS node resource group name + * + * @return builder + * + */ + public Builder nodeResourceGroup(String nodeResourceGroup) { + return nodeResourceGroup(Output.of(nodeResourceGroup)); + } + /** * @param privateCluster Is AKS cluster private? * diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GetRoleTemplateArgs.java b/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GetRoleTemplateArgs.java index 089ca17cd..b262a55c1 100644 --- a/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GetRoleTemplateArgs.java +++ b/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GetRoleTemplateArgs.java @@ -6,7 +6,9 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.rancher2.inputs.GetRoleTemplateExternalRuleArgs; import java.lang.String; +import java.util.List; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -31,6 +33,21 @@ public Optional> context() { return Optional.ofNullable(this.context); } + /** + * (Computed) External rules used for authorization. (list) + * + */ + @Import(name="externalRules") + private @Nullable Output> externalRules; + + /** + * @return (Computed) External rules used for authorization. (list) + * + */ + public Optional>> externalRules() { + return Optional.ofNullable(this.externalRules); + } + /** * The name of the Role Template (string) * @@ -50,6 +67,7 @@ private GetRoleTemplateArgs() {} private GetRoleTemplateArgs(GetRoleTemplateArgs $) { this.context = $.context; + this.externalRules = $.externalRules; this.name = $.name; } @@ -92,6 +110,37 @@ public Builder context(String context) { return context(Output.of(context)); } + /** + * @param externalRules (Computed) External rules used for authorization. (list) + * + * @return builder + * + */ + public Builder externalRules(@Nullable Output> externalRules) { + $.externalRules = externalRules; + return this; + } + + /** + * @param externalRules (Computed) External rules used for authorization. (list) + * + * @return builder + * + */ + public Builder externalRules(List externalRules) { + return externalRules(Output.of(externalRules)); + } + + /** + * @param externalRules (Computed) External rules used for authorization. (list) + * + * @return builder + * + */ + public Builder externalRules(GetRoleTemplateExternalRuleArgs... externalRules) { + return externalRules(List.of(externalRules)); + } + /** * @param name The name of the Role Template (string) * diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GetRoleTemplateExternalRule.java b/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GetRoleTemplateExternalRule.java new file mode 100644 index 000000000..1004a565b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GetRoleTemplateExternalRule.java @@ -0,0 +1,231 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.rancher2.inputs; + +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetRoleTemplateExternalRule extends com.pulumi.resources.InvokeArgs { + + public static final GetRoleTemplateExternalRule Empty = new GetRoleTemplateExternalRule(); + + /** + * Policy rule api groups + * + */ + @Import(name="apiGroups") + private @Nullable List apiGroups; + + /** + * @return Policy rule api groups + * + */ + public Optional> apiGroups() { + return Optional.ofNullable(this.apiGroups); + } + + /** + * Policy rule non resource urls + * + */ + @Import(name="nonResourceUrls") + private @Nullable List nonResourceUrls; + + /** + * @return Policy rule non resource urls + * + */ + public Optional> nonResourceUrls() { + return Optional.ofNullable(this.nonResourceUrls); + } + + /** + * Policy rule resource names + * + */ + @Import(name="resourceNames") + private @Nullable List resourceNames; + + /** + * @return Policy rule resource names + * + */ + public Optional> resourceNames() { + return Optional.ofNullable(this.resourceNames); + } + + /** + * Policy rule resources + * + */ + @Import(name="resources") + private @Nullable List resources; + + /** + * @return Policy rule resources + * + */ + public Optional> resources() { + return Optional.ofNullable(this.resources); + } + + /** + * Policy rule verbs + * + */ + @Import(name="verbs") + private @Nullable List verbs; + + /** + * @return Policy rule verbs + * + */ + public Optional> verbs() { + return Optional.ofNullable(this.verbs); + } + + private GetRoleTemplateExternalRule() {} + + private GetRoleTemplateExternalRule(GetRoleTemplateExternalRule $) { + this.apiGroups = $.apiGroups; + this.nonResourceUrls = $.nonResourceUrls; + this.resourceNames = $.resourceNames; + this.resources = $.resources; + this.verbs = $.verbs; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetRoleTemplateExternalRule defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetRoleTemplateExternalRule $; + + public Builder() { + $ = new GetRoleTemplateExternalRule(); + } + + public Builder(GetRoleTemplateExternalRule defaults) { + $ = new GetRoleTemplateExternalRule(Objects.requireNonNull(defaults)); + } + + /** + * @param apiGroups Policy rule api groups + * + * @return builder + * + */ + public Builder apiGroups(@Nullable List apiGroups) { + $.apiGroups = apiGroups; + return this; + } + + /** + * @param apiGroups Policy rule api groups + * + * @return builder + * + */ + public Builder apiGroups(String... apiGroups) { + return apiGroups(List.of(apiGroups)); + } + + /** + * @param nonResourceUrls Policy rule non resource urls + * + * @return builder + * + */ + public Builder nonResourceUrls(@Nullable List nonResourceUrls) { + $.nonResourceUrls = nonResourceUrls; + return this; + } + + /** + * @param nonResourceUrls Policy rule non resource urls + * + * @return builder + * + */ + public Builder nonResourceUrls(String... nonResourceUrls) { + return nonResourceUrls(List.of(nonResourceUrls)); + } + + /** + * @param resourceNames Policy rule resource names + * + * @return builder + * + */ + public Builder resourceNames(@Nullable List resourceNames) { + $.resourceNames = resourceNames; + return this; + } + + /** + * @param resourceNames Policy rule resource names + * + * @return builder + * + */ + public Builder resourceNames(String... resourceNames) { + return resourceNames(List.of(resourceNames)); + } + + /** + * @param resources Policy rule resources + * + * @return builder + * + */ + public Builder resources(@Nullable List resources) { + $.resources = resources; + return this; + } + + /** + * @param resources Policy rule resources + * + * @return builder + * + */ + public Builder resources(String... resources) { + return resources(List.of(resources)); + } + + /** + * @param verbs Policy rule verbs + * + * @return builder + * + */ + public Builder verbs(@Nullable List verbs) { + $.verbs = verbs; + return this; + } + + /** + * @param verbs Policy rule verbs + * + * @return builder + * + */ + public Builder verbs(String... verbs) { + return verbs(List.of(verbs)); + } + + public GetRoleTemplateExternalRule build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GetRoleTemplateExternalRuleArgs.java b/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GetRoleTemplateExternalRuleArgs.java new file mode 100644 index 000000000..f17841f7d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GetRoleTemplateExternalRuleArgs.java @@ -0,0 +1,282 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.rancher2.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetRoleTemplateExternalRuleArgs extends com.pulumi.resources.ResourceArgs { + + public static final GetRoleTemplateExternalRuleArgs Empty = new GetRoleTemplateExternalRuleArgs(); + + /** + * Policy rule api groups + * + */ + @Import(name="apiGroups") + private @Nullable Output> apiGroups; + + /** + * @return Policy rule api groups + * + */ + public Optional>> apiGroups() { + return Optional.ofNullable(this.apiGroups); + } + + /** + * Policy rule non resource urls + * + */ + @Import(name="nonResourceUrls") + private @Nullable Output> nonResourceUrls; + + /** + * @return Policy rule non resource urls + * + */ + public Optional>> nonResourceUrls() { + return Optional.ofNullable(this.nonResourceUrls); + } + + /** + * Policy rule resource names + * + */ + @Import(name="resourceNames") + private @Nullable Output> resourceNames; + + /** + * @return Policy rule resource names + * + */ + public Optional>> resourceNames() { + return Optional.ofNullable(this.resourceNames); + } + + /** + * Policy rule resources + * + */ + @Import(name="resources") + private @Nullable Output> resources; + + /** + * @return Policy rule resources + * + */ + public Optional>> resources() { + return Optional.ofNullable(this.resources); + } + + /** + * Policy rule verbs + * + */ + @Import(name="verbs") + private @Nullable Output> verbs; + + /** + * @return Policy rule verbs + * + */ + public Optional>> verbs() { + return Optional.ofNullable(this.verbs); + } + + private GetRoleTemplateExternalRuleArgs() {} + + private GetRoleTemplateExternalRuleArgs(GetRoleTemplateExternalRuleArgs $) { + this.apiGroups = $.apiGroups; + this.nonResourceUrls = $.nonResourceUrls; + this.resourceNames = $.resourceNames; + this.resources = $.resources; + this.verbs = $.verbs; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetRoleTemplateExternalRuleArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetRoleTemplateExternalRuleArgs $; + + public Builder() { + $ = new GetRoleTemplateExternalRuleArgs(); + } + + public Builder(GetRoleTemplateExternalRuleArgs defaults) { + $ = new GetRoleTemplateExternalRuleArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiGroups Policy rule api groups + * + * @return builder + * + */ + public Builder apiGroups(@Nullable Output> apiGroups) { + $.apiGroups = apiGroups; + return this; + } + + /** + * @param apiGroups Policy rule api groups + * + * @return builder + * + */ + public Builder apiGroups(List apiGroups) { + return apiGroups(Output.of(apiGroups)); + } + + /** + * @param apiGroups Policy rule api groups + * + * @return builder + * + */ + public Builder apiGroups(String... apiGroups) { + return apiGroups(List.of(apiGroups)); + } + + /** + * @param nonResourceUrls Policy rule non resource urls + * + * @return builder + * + */ + public Builder nonResourceUrls(@Nullable Output> nonResourceUrls) { + $.nonResourceUrls = nonResourceUrls; + return this; + } + + /** + * @param nonResourceUrls Policy rule non resource urls + * + * @return builder + * + */ + public Builder nonResourceUrls(List nonResourceUrls) { + return nonResourceUrls(Output.of(nonResourceUrls)); + } + + /** + * @param nonResourceUrls Policy rule non resource urls + * + * @return builder + * + */ + public Builder nonResourceUrls(String... nonResourceUrls) { + return nonResourceUrls(List.of(nonResourceUrls)); + } + + /** + * @param resourceNames Policy rule resource names + * + * @return builder + * + */ + public Builder resourceNames(@Nullable Output> resourceNames) { + $.resourceNames = resourceNames; + return this; + } + + /** + * @param resourceNames Policy rule resource names + * + * @return builder + * + */ + public Builder resourceNames(List resourceNames) { + return resourceNames(Output.of(resourceNames)); + } + + /** + * @param resourceNames Policy rule resource names + * + * @return builder + * + */ + public Builder resourceNames(String... resourceNames) { + return resourceNames(List.of(resourceNames)); + } + + /** + * @param resources Policy rule resources + * + * @return builder + * + */ + public Builder resources(@Nullable Output> resources) { + $.resources = resources; + return this; + } + + /** + * @param resources Policy rule resources + * + * @return builder + * + */ + public Builder resources(List resources) { + return resources(Output.of(resources)); + } + + /** + * @param resources Policy rule resources + * + * @return builder + * + */ + public Builder resources(String... resources) { + return resources(List.of(resources)); + } + + /** + * @param verbs Policy rule verbs + * + * @return builder + * + */ + public Builder verbs(@Nullable Output> verbs) { + $.verbs = verbs; + return this; + } + + /** + * @param verbs Policy rule verbs + * + * @return builder + * + */ + public Builder verbs(List verbs) { + return verbs(Output.of(verbs)); + } + + /** + * @param verbs Policy rule verbs + * + * @return builder + * + */ + public Builder verbs(String... verbs) { + return verbs(List.of(verbs)); + } + + public GetRoleTemplateExternalRuleArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GetRoleTemplatePlainArgs.java b/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GetRoleTemplatePlainArgs.java index bd1df7b60..5e03755d2 100644 --- a/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GetRoleTemplatePlainArgs.java +++ b/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GetRoleTemplatePlainArgs.java @@ -5,7 +5,9 @@ import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.rancher2.inputs.GetRoleTemplateExternalRule; import java.lang.String; +import java.util.List; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -30,6 +32,21 @@ public Optional context() { return Optional.ofNullable(this.context); } + /** + * (Computed) External rules used for authorization. (list) + * + */ + @Import(name="externalRules") + private @Nullable List externalRules; + + /** + * @return (Computed) External rules used for authorization. (list) + * + */ + public Optional> externalRules() { + return Optional.ofNullable(this.externalRules); + } + /** * The name of the Role Template (string) * @@ -49,6 +66,7 @@ private GetRoleTemplatePlainArgs() {} private GetRoleTemplatePlainArgs(GetRoleTemplatePlainArgs $) { this.context = $.context; + this.externalRules = $.externalRules; this.name = $.name; } @@ -81,6 +99,27 @@ public Builder context(@Nullable String context) { return this; } + /** + * @param externalRules (Computed) External rules used for authorization. (list) + * + * @return builder + * + */ + public Builder externalRules(@Nullable List externalRules) { + $.externalRules = externalRules; + return this; + } + + /** + * @param externalRules (Computed) External rules used for authorization. (list) + * + * @return builder + * + */ + public Builder externalRules(GetRoleTemplateExternalRule... externalRules) { + return externalRules(List.of(externalRules)); + } + /** * @param name The name of the Role Template (string) * diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GlobalRoleState.java b/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GlobalRoleState.java index 2e57ddb6c..6fff22100 100644 --- a/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GlobalRoleState.java +++ b/sdk/java/src/main/java/com/pulumi/rancher2/inputs/GlobalRoleState.java @@ -66,14 +66,14 @@ public Optional> description() { } /** - * Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + * Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) * */ @Import(name="inheritedClusterRoles") private @Nullable Output> inheritedClusterRoles; /** - * @return Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + * @return Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) * */ public Optional>> inheritedClusterRoles() { @@ -235,7 +235,7 @@ public Builder description(String description) { } /** - * @param inheritedClusterRoles Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + * @param inheritedClusterRoles Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) * * @return builder * @@ -246,7 +246,7 @@ public Builder inheritedClusterRoles(@Nullable Output> inheritedClu } /** - * @param inheritedClusterRoles Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + * @param inheritedClusterRoles Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) * * @return builder * @@ -256,7 +256,7 @@ public Builder inheritedClusterRoles(List inheritedClusterRoles) { } /** - * @param inheritedClusterRoles Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + * @param inheritedClusterRoles Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/inputs/RoleTemplateExternalRuleArgs.java b/sdk/java/src/main/java/com/pulumi/rancher2/inputs/RoleTemplateExternalRuleArgs.java new file mode 100644 index 000000000..d4dae92b5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/rancher2/inputs/RoleTemplateExternalRuleArgs.java @@ -0,0 +1,282 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.rancher2.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RoleTemplateExternalRuleArgs extends com.pulumi.resources.ResourceArgs { + + public static final RoleTemplateExternalRuleArgs Empty = new RoleTemplateExternalRuleArgs(); + + /** + * Policy rule api groups + * + */ + @Import(name="apiGroups") + private @Nullable Output> apiGroups; + + /** + * @return Policy rule api groups + * + */ + public Optional>> apiGroups() { + return Optional.ofNullable(this.apiGroups); + } + + /** + * Policy rule non resource urls + * + */ + @Import(name="nonResourceUrls") + private @Nullable Output> nonResourceUrls; + + /** + * @return Policy rule non resource urls + * + */ + public Optional>> nonResourceUrls() { + return Optional.ofNullable(this.nonResourceUrls); + } + + /** + * Policy rule resource names + * + */ + @Import(name="resourceNames") + private @Nullable Output> resourceNames; + + /** + * @return Policy rule resource names + * + */ + public Optional>> resourceNames() { + return Optional.ofNullable(this.resourceNames); + } + + /** + * Policy rule resources + * + */ + @Import(name="resources") + private @Nullable Output> resources; + + /** + * @return Policy rule resources + * + */ + public Optional>> resources() { + return Optional.ofNullable(this.resources); + } + + /** + * Policy rule verbs + * + */ + @Import(name="verbs") + private @Nullable Output> verbs; + + /** + * @return Policy rule verbs + * + */ + public Optional>> verbs() { + return Optional.ofNullable(this.verbs); + } + + private RoleTemplateExternalRuleArgs() {} + + private RoleTemplateExternalRuleArgs(RoleTemplateExternalRuleArgs $) { + this.apiGroups = $.apiGroups; + this.nonResourceUrls = $.nonResourceUrls; + this.resourceNames = $.resourceNames; + this.resources = $.resources; + this.verbs = $.verbs; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RoleTemplateExternalRuleArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RoleTemplateExternalRuleArgs $; + + public Builder() { + $ = new RoleTemplateExternalRuleArgs(); + } + + public Builder(RoleTemplateExternalRuleArgs defaults) { + $ = new RoleTemplateExternalRuleArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param apiGroups Policy rule api groups + * + * @return builder + * + */ + public Builder apiGroups(@Nullable Output> apiGroups) { + $.apiGroups = apiGroups; + return this; + } + + /** + * @param apiGroups Policy rule api groups + * + * @return builder + * + */ + public Builder apiGroups(List apiGroups) { + return apiGroups(Output.of(apiGroups)); + } + + /** + * @param apiGroups Policy rule api groups + * + * @return builder + * + */ + public Builder apiGroups(String... apiGroups) { + return apiGroups(List.of(apiGroups)); + } + + /** + * @param nonResourceUrls Policy rule non resource urls + * + * @return builder + * + */ + public Builder nonResourceUrls(@Nullable Output> nonResourceUrls) { + $.nonResourceUrls = nonResourceUrls; + return this; + } + + /** + * @param nonResourceUrls Policy rule non resource urls + * + * @return builder + * + */ + public Builder nonResourceUrls(List nonResourceUrls) { + return nonResourceUrls(Output.of(nonResourceUrls)); + } + + /** + * @param nonResourceUrls Policy rule non resource urls + * + * @return builder + * + */ + public Builder nonResourceUrls(String... nonResourceUrls) { + return nonResourceUrls(List.of(nonResourceUrls)); + } + + /** + * @param resourceNames Policy rule resource names + * + * @return builder + * + */ + public Builder resourceNames(@Nullable Output> resourceNames) { + $.resourceNames = resourceNames; + return this; + } + + /** + * @param resourceNames Policy rule resource names + * + * @return builder + * + */ + public Builder resourceNames(List resourceNames) { + return resourceNames(Output.of(resourceNames)); + } + + /** + * @param resourceNames Policy rule resource names + * + * @return builder + * + */ + public Builder resourceNames(String... resourceNames) { + return resourceNames(List.of(resourceNames)); + } + + /** + * @param resources Policy rule resources + * + * @return builder + * + */ + public Builder resources(@Nullable Output> resources) { + $.resources = resources; + return this; + } + + /** + * @param resources Policy rule resources + * + * @return builder + * + */ + public Builder resources(List resources) { + return resources(Output.of(resources)); + } + + /** + * @param resources Policy rule resources + * + * @return builder + * + */ + public Builder resources(String... resources) { + return resources(List.of(resources)); + } + + /** + * @param verbs Policy rule verbs + * + * @return builder + * + */ + public Builder verbs(@Nullable Output> verbs) { + $.verbs = verbs; + return this; + } + + /** + * @param verbs Policy rule verbs + * + * @return builder + * + */ + public Builder verbs(List verbs) { + return verbs(Output.of(verbs)); + } + + /** + * @param verbs Policy rule verbs + * + * @return builder + * + */ + public Builder verbs(String... verbs) { + return verbs(List.of(verbs)); + } + + public RoleTemplateExternalRuleArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/inputs/RoleTemplateState.java b/sdk/java/src/main/java/com/pulumi/rancher2/inputs/RoleTemplateState.java index 4573bee1e..820f5f1e2 100644 --- a/sdk/java/src/main/java/com/pulumi/rancher2/inputs/RoleTemplateState.java +++ b/sdk/java/src/main/java/com/pulumi/rancher2/inputs/RoleTemplateState.java @@ -5,6 +5,7 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; +import com.pulumi.rancher2.inputs.RoleTemplateExternalRuleArgs; import com.pulumi.rancher2.inputs.RoleTemplateRuleArgs; import java.lang.Boolean; import java.lang.Object; @@ -125,6 +126,21 @@ public Optional> external() { return Optional.ofNullable(this.external); } + /** + * External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + * + */ + @Import(name="externalRules") + private @Nullable Output> externalRules; + + /** + * @return External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + * + */ + public Optional>> externalRules() { + return Optional.ofNullable(this.externalRules); + } + /** * Hidden role template. Default `false` (bool) * @@ -225,6 +241,7 @@ private RoleTemplateState(RoleTemplateState $) { this.defaultRole = $.defaultRole; this.description = $.description; this.external = $.external; + this.externalRules = $.externalRules; this.hidden = $.hidden; this.labels = $.labels; this.locked = $.locked; @@ -398,6 +415,37 @@ public Builder external(Boolean external) { return external(Output.of(external)); } + /** + * @param externalRules External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + * + * @return builder + * + */ + public Builder externalRules(@Nullable Output> externalRules) { + $.externalRules = externalRules; + return this; + } + + /** + * @param externalRules External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + * + * @return builder + * + */ + public Builder externalRules(List externalRules) { + return externalRules(Output.of(externalRules)); + } + + /** + * @param externalRules External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + * + * @return builder + * + */ + public Builder externalRules(RoleTemplateExternalRuleArgs... externalRules) { + return externalRules(List.of(externalRules)); + } + /** * @param hidden Hidden role template. Default `false` (bool) * diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/outputs/ClusterAksConfigV2.java b/sdk/java/src/main/java/com/pulumi/rancher2/outputs/ClusterAksConfigV2.java index 1b5564d20..887ba0624 100644 --- a/sdk/java/src/main/java/com/pulumi/rancher2/outputs/ClusterAksConfigV2.java +++ b/sdk/java/src/main/java/com/pulumi/rancher2/outputs/ClusterAksConfigV2.java @@ -127,6 +127,11 @@ public final class ClusterAksConfigV2 { * */ private @Nullable List nodePools; + /** + * @return The AKS node resource group name + * + */ + private @Nullable String nodeResourceGroup; /** * @return Is AKS cluster private? * @@ -318,6 +323,13 @@ public Optional networkServiceCidr() { public List nodePools() { return this.nodePools == null ? List.of() : this.nodePools; } + /** + * @return The AKS node resource group name + * + */ + public Optional nodeResourceGroup() { + return Optional.ofNullable(this.nodeResourceGroup); + } /** * @return Is AKS cluster private? * @@ -399,6 +411,7 @@ public static final class Builder { private @Nullable String networkPolicy; private @Nullable String networkServiceCidr; private @Nullable List nodePools; + private @Nullable String nodeResourceGroup; private @Nullable Boolean privateCluster; private String resourceGroup; private String resourceLocation; @@ -431,6 +444,7 @@ public Builder(ClusterAksConfigV2 defaults) { this.networkPolicy = defaults.networkPolicy; this.networkServiceCidr = defaults.networkServiceCidr; this.nodePools = defaults.nodePools; + this.nodeResourceGroup = defaults.nodeResourceGroup; this.privateCluster = defaults.privateCluster; this.resourceGroup = defaults.resourceGroup; this.resourceLocation = defaults.resourceLocation; @@ -581,6 +595,12 @@ public Builder nodePools(ClusterAksConfigV2NodePool... nodePools) { return nodePools(List.of(nodePools)); } @CustomType.Setter + public Builder nodeResourceGroup(@Nullable String nodeResourceGroup) { + + this.nodeResourceGroup = nodeResourceGroup; + return this; + } + @CustomType.Setter public Builder privateCluster(@Nullable Boolean privateCluster) { this.privateCluster = privateCluster; @@ -650,6 +670,7 @@ public ClusterAksConfigV2 build() { _resultValue.networkPolicy = networkPolicy; _resultValue.networkServiceCidr = networkServiceCidr; _resultValue.nodePools = nodePools; + _resultValue.nodeResourceGroup = nodeResourceGroup; _resultValue.privateCluster = privateCluster; _resultValue.resourceGroup = resourceGroup; _resultValue.resourceLocation = resourceLocation; diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/outputs/GetClusterAksConfigV2.java b/sdk/java/src/main/java/com/pulumi/rancher2/outputs/GetClusterAksConfigV2.java index f5735f12c..96da81d32 100644 --- a/sdk/java/src/main/java/com/pulumi/rancher2/outputs/GetClusterAksConfigV2.java +++ b/sdk/java/src/main/java/com/pulumi/rancher2/outputs/GetClusterAksConfigV2.java @@ -127,6 +127,11 @@ public final class GetClusterAksConfigV2 { * */ private @Nullable List nodePools; + /** + * @return The AKS node resource group name + * + */ + private String nodeResourceGroup; /** * @return Is AKS cluster private? * @@ -318,6 +323,13 @@ public String networkServiceCidr() { public List nodePools() { return this.nodePools == null ? List.of() : this.nodePools; } + /** + * @return The AKS node resource group name + * + */ + public String nodeResourceGroup() { + return this.nodeResourceGroup; + } /** * @return Is AKS cluster private? * @@ -399,6 +411,7 @@ public static final class Builder { private String networkPolicy; private String networkServiceCidr; private @Nullable List nodePools; + private String nodeResourceGroup; private Boolean privateCluster; private String resourceGroup; private String resourceLocation; @@ -431,6 +444,7 @@ public Builder(GetClusterAksConfigV2 defaults) { this.networkPolicy = defaults.networkPolicy; this.networkServiceCidr = defaults.networkServiceCidr; this.nodePools = defaults.nodePools; + this.nodeResourceGroup = defaults.nodeResourceGroup; this.privateCluster = defaults.privateCluster; this.resourceGroup = defaults.resourceGroup; this.resourceLocation = defaults.resourceLocation; @@ -607,6 +621,14 @@ public Builder nodePools(GetClusterAksConfigV2NodePool... nodePools) { return nodePools(List.of(nodePools)); } @CustomType.Setter + public Builder nodeResourceGroup(String nodeResourceGroup) { + if (nodeResourceGroup == null) { + throw new MissingRequiredPropertyException("GetClusterAksConfigV2", "nodeResourceGroup"); + } + this.nodeResourceGroup = nodeResourceGroup; + return this; + } + @CustomType.Setter public Builder privateCluster(Boolean privateCluster) { if (privateCluster == null) { throw new MissingRequiredPropertyException("GetClusterAksConfigV2", "privateCluster"); @@ -686,6 +708,7 @@ public GetClusterAksConfigV2 build() { _resultValue.networkPolicy = networkPolicy; _resultValue.networkServiceCidr = networkServiceCidr; _resultValue.nodePools = nodePools; + _resultValue.nodeResourceGroup = nodeResourceGroup; _resultValue.privateCluster = privateCluster; _resultValue.resourceGroup = resourceGroup; _resultValue.resourceLocation = resourceLocation; diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/outputs/GetRoleTemplateExternalRule.java b/sdk/java/src/main/java/com/pulumi/rancher2/outputs/GetRoleTemplateExternalRule.java new file mode 100644 index 000000000..700679356 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/rancher2/outputs/GetRoleTemplateExternalRule.java @@ -0,0 +1,156 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.rancher2.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class GetRoleTemplateExternalRule { + /** + * @return Policy rule api groups + * + */ + private @Nullable List apiGroups; + /** + * @return Policy rule non resource urls + * + */ + private @Nullable List nonResourceUrls; + /** + * @return Policy rule resource names + * + */ + private @Nullable List resourceNames; + /** + * @return Policy rule resources + * + */ + private @Nullable List resources; + /** + * @return Policy rule verbs + * + */ + private @Nullable List verbs; + + private GetRoleTemplateExternalRule() {} + /** + * @return Policy rule api groups + * + */ + public List apiGroups() { + return this.apiGroups == null ? List.of() : this.apiGroups; + } + /** + * @return Policy rule non resource urls + * + */ + public List nonResourceUrls() { + return this.nonResourceUrls == null ? List.of() : this.nonResourceUrls; + } + /** + * @return Policy rule resource names + * + */ + public List resourceNames() { + return this.resourceNames == null ? List.of() : this.resourceNames; + } + /** + * @return Policy rule resources + * + */ + public List resources() { + return this.resources == null ? List.of() : this.resources; + } + /** + * @return Policy rule verbs + * + */ + public List verbs() { + return this.verbs == null ? List.of() : this.verbs; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetRoleTemplateExternalRule defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List apiGroups; + private @Nullable List nonResourceUrls; + private @Nullable List resourceNames; + private @Nullable List resources; + private @Nullable List verbs; + public Builder() {} + public Builder(GetRoleTemplateExternalRule defaults) { + Objects.requireNonNull(defaults); + this.apiGroups = defaults.apiGroups; + this.nonResourceUrls = defaults.nonResourceUrls; + this.resourceNames = defaults.resourceNames; + this.resources = defaults.resources; + this.verbs = defaults.verbs; + } + + @CustomType.Setter + public Builder apiGroups(@Nullable List apiGroups) { + + this.apiGroups = apiGroups; + return this; + } + public Builder apiGroups(String... apiGroups) { + return apiGroups(List.of(apiGroups)); + } + @CustomType.Setter + public Builder nonResourceUrls(@Nullable List nonResourceUrls) { + + this.nonResourceUrls = nonResourceUrls; + return this; + } + public Builder nonResourceUrls(String... nonResourceUrls) { + return nonResourceUrls(List.of(nonResourceUrls)); + } + @CustomType.Setter + public Builder resourceNames(@Nullable List resourceNames) { + + this.resourceNames = resourceNames; + return this; + } + public Builder resourceNames(String... resourceNames) { + return resourceNames(List.of(resourceNames)); + } + @CustomType.Setter + public Builder resources(@Nullable List resources) { + + this.resources = resources; + return this; + } + public Builder resources(String... resources) { + return resources(List.of(resources)); + } + @CustomType.Setter + public Builder verbs(@Nullable List verbs) { + + this.verbs = verbs; + return this; + } + public Builder verbs(String... verbs) { + return verbs(List.of(verbs)); + } + public GetRoleTemplateExternalRule build() { + final var _resultValue = new GetRoleTemplateExternalRule(); + _resultValue.apiGroups = apiGroups; + _resultValue.nonResourceUrls = nonResourceUrls; + _resultValue.resourceNames = resourceNames; + _resultValue.resources = resources; + _resultValue.verbs = verbs; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/outputs/GetRoleTemplateResult.java b/sdk/java/src/main/java/com/pulumi/rancher2/outputs/GetRoleTemplateResult.java index 3e218a232..b0a8d9778 100644 --- a/sdk/java/src/main/java/com/pulumi/rancher2/outputs/GetRoleTemplateResult.java +++ b/sdk/java/src/main/java/com/pulumi/rancher2/outputs/GetRoleTemplateResult.java @@ -5,6 +5,7 @@ import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.rancher2.outputs.GetRoleTemplateExternalRule; import com.pulumi.rancher2.outputs.GetRoleTemplateRule; import java.lang.Boolean; import java.lang.Object; @@ -46,6 +47,11 @@ public final class GetRoleTemplateResult { * */ private Boolean external; + /** + * @return (Computed) External rules used for authorization. (list) + * + */ + private List externalRules; /** * @return (Computed) Hidden role template (bool) * @@ -124,6 +130,13 @@ public String description() { public Boolean external() { return this.external; } + /** + * @return (Computed) External rules used for authorization. (list) + * + */ + public List externalRules() { + return this.externalRules; + } /** * @return (Computed) Hidden role template (bool) * @@ -186,6 +199,7 @@ public static final class Builder { private Boolean defaultRole; private String description; private Boolean external; + private List externalRules; private Boolean hidden; private String id; private Map labels; @@ -203,6 +217,7 @@ public Builder(GetRoleTemplateResult defaults) { this.defaultRole = defaults.defaultRole; this.description = defaults.description; this.external = defaults.external; + this.externalRules = defaults.externalRules; this.hidden = defaults.hidden; this.id = defaults.id; this.labels = defaults.labels; @@ -269,6 +284,17 @@ public Builder external(Boolean external) { return this; } @CustomType.Setter + public Builder externalRules(List externalRules) { + if (externalRules == null) { + throw new MissingRequiredPropertyException("GetRoleTemplateResult", "externalRules"); + } + this.externalRules = externalRules; + return this; + } + public Builder externalRules(GetRoleTemplateExternalRule... externalRules) { + return externalRules(List.of(externalRules)); + } + @CustomType.Setter public Builder hidden(Boolean hidden) { if (hidden == null) { throw new MissingRequiredPropertyException("GetRoleTemplateResult", "hidden"); @@ -339,6 +365,7 @@ public GetRoleTemplateResult build() { _resultValue.defaultRole = defaultRole; _resultValue.description = description; _resultValue.external = external; + _resultValue.externalRules = externalRules; _resultValue.hidden = hidden; _resultValue.id = id; _resultValue.labels = labels; diff --git a/sdk/java/src/main/java/com/pulumi/rancher2/outputs/RoleTemplateExternalRule.java b/sdk/java/src/main/java/com/pulumi/rancher2/outputs/RoleTemplateExternalRule.java new file mode 100644 index 000000000..6f24cda52 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/rancher2/outputs/RoleTemplateExternalRule.java @@ -0,0 +1,156 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.rancher2.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class RoleTemplateExternalRule { + /** + * @return Policy rule api groups + * + */ + private @Nullable List apiGroups; + /** + * @return Policy rule non resource urls + * + */ + private @Nullable List nonResourceUrls; + /** + * @return Policy rule resource names + * + */ + private @Nullable List resourceNames; + /** + * @return Policy rule resources + * + */ + private @Nullable List resources; + /** + * @return Policy rule verbs + * + */ + private @Nullable List verbs; + + private RoleTemplateExternalRule() {} + /** + * @return Policy rule api groups + * + */ + public List apiGroups() { + return this.apiGroups == null ? List.of() : this.apiGroups; + } + /** + * @return Policy rule non resource urls + * + */ + public List nonResourceUrls() { + return this.nonResourceUrls == null ? List.of() : this.nonResourceUrls; + } + /** + * @return Policy rule resource names + * + */ + public List resourceNames() { + return this.resourceNames == null ? List.of() : this.resourceNames; + } + /** + * @return Policy rule resources + * + */ + public List resources() { + return this.resources == null ? List.of() : this.resources; + } + /** + * @return Policy rule verbs + * + */ + public List verbs() { + return this.verbs == null ? List.of() : this.verbs; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RoleTemplateExternalRule defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List apiGroups; + private @Nullable List nonResourceUrls; + private @Nullable List resourceNames; + private @Nullable List resources; + private @Nullable List verbs; + public Builder() {} + public Builder(RoleTemplateExternalRule defaults) { + Objects.requireNonNull(defaults); + this.apiGroups = defaults.apiGroups; + this.nonResourceUrls = defaults.nonResourceUrls; + this.resourceNames = defaults.resourceNames; + this.resources = defaults.resources; + this.verbs = defaults.verbs; + } + + @CustomType.Setter + public Builder apiGroups(@Nullable List apiGroups) { + + this.apiGroups = apiGroups; + return this; + } + public Builder apiGroups(String... apiGroups) { + return apiGroups(List.of(apiGroups)); + } + @CustomType.Setter + public Builder nonResourceUrls(@Nullable List nonResourceUrls) { + + this.nonResourceUrls = nonResourceUrls; + return this; + } + public Builder nonResourceUrls(String... nonResourceUrls) { + return nonResourceUrls(List.of(nonResourceUrls)); + } + @CustomType.Setter + public Builder resourceNames(@Nullable List resourceNames) { + + this.resourceNames = resourceNames; + return this; + } + public Builder resourceNames(String... resourceNames) { + return resourceNames(List.of(resourceNames)); + } + @CustomType.Setter + public Builder resources(@Nullable List resources) { + + this.resources = resources; + return this; + } + public Builder resources(String... resources) { + return resources(List.of(resources)); + } + @CustomType.Setter + public Builder verbs(@Nullable List verbs) { + + this.verbs = verbs; + return this; + } + public Builder verbs(String... verbs) { + return verbs(List.of(verbs)); + } + public RoleTemplateExternalRule build() { + final var _resultValue = new RoleTemplateExternalRule(); + _resultValue.apiGroups = apiGroups; + _resultValue.nonResourceUrls = nonResourceUrls; + _resultValue.resourceNames = resourceNames; + _resultValue.resources = resources; + _resultValue.verbs = verbs; + return _resultValue; + } + } +} diff --git a/sdk/nodejs/cluster.ts b/sdk/nodejs/cluster.ts index b215bc830..ffcb5fcf1 100644 --- a/sdk/nodejs/cluster.ts +++ b/sdk/nodejs/cluster.ts @@ -534,6 +534,10 @@ import * as utilities from "./utilities"; * dnsPrefix: "", * kubernetesVersion: "1.24.6", * networkPlugin: "", + * virtualNetwork: "", + * virtualNetworkResourceGroup: "", + * subnet: "", + * nodeResourceGroup: "", * nodePools: [ * { * availabilityZones: [ diff --git a/sdk/nodejs/getRoleTemplate.ts b/sdk/nodejs/getRoleTemplate.ts index 64350f415..f2df951fa 100644 --- a/sdk/nodejs/getRoleTemplate.ts +++ b/sdk/nodejs/getRoleTemplate.ts @@ -25,6 +25,7 @@ export function getRoleTemplate(args: GetRoleTemplateArgs, opts?: pulumi.InvokeO opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invoke("rancher2:index/getRoleTemplate:getRoleTemplate", { "context": args.context, + "externalRules": args.externalRules, "name": args.name, }, opts); } @@ -37,6 +38,10 @@ export interface GetRoleTemplateArgs { * Role template context. `cluster` and `project` values are supported (string) */ context?: string; + /** + * (Computed) External rules used for authorization. (list) + */ + externalRules?: inputs.GetRoleTemplateExternalRule[]; /** * The name of the Role Template (string) */ @@ -72,6 +77,10 @@ export interface GetRoleTemplateResult { * (Computed) External role template (bool) */ readonly external: boolean; + /** + * (Computed) External rules used for authorization. (list) + */ + readonly externalRules: outputs.GetRoleTemplateExternalRule[]; /** * (Computed) Hidden role template (bool) */ @@ -124,6 +133,10 @@ export interface GetRoleTemplateOutputArgs { * Role template context. `cluster` and `project` values are supported (string) */ context?: pulumi.Input; + /** + * (Computed) External rules used for authorization. (list) + */ + externalRules?: pulumi.Input[]>; /** * The name of the Role Template (string) */ diff --git a/sdk/nodejs/globalRole.ts b/sdk/nodejs/globalRole.ts index b9fa70b10..7a286fa10 100644 --- a/sdk/nodejs/globalRole.ts +++ b/sdk/nodejs/globalRole.ts @@ -77,7 +77,7 @@ export class GlobalRole extends pulumi.CustomResource { */ public readonly description!: pulumi.Output; /** - * Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + * Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) */ public readonly inheritedClusterRoles!: pulumi.Output; /** @@ -151,7 +151,7 @@ export interface GlobalRoleState { */ description?: pulumi.Input; /** - * Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + * Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) */ inheritedClusterRoles?: pulumi.Input[]>; /** @@ -185,7 +185,7 @@ export interface GlobalRoleArgs { */ description?: pulumi.Input; /** - * Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + * Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) */ inheritedClusterRoles?: pulumi.Input[]>; /** diff --git a/sdk/nodejs/roleTemplate.ts b/sdk/nodejs/roleTemplate.ts index 692542d35..db87afe9c 100644 --- a/sdk/nodejs/roleTemplate.ts +++ b/sdk/nodejs/roleTemplate.ts @@ -113,6 +113,10 @@ export class RoleTemplate extends pulumi.CustomResource { * External role template. Default `false` (bool) */ public readonly external!: pulumi.Output; + /** + * External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + */ + public readonly externalRules!: pulumi.Output; /** * Hidden role template. Default `false` (bool) */ @@ -158,6 +162,7 @@ export class RoleTemplate extends pulumi.CustomResource { resourceInputs["defaultRole"] = state ? state.defaultRole : undefined; resourceInputs["description"] = state ? state.description : undefined; resourceInputs["external"] = state ? state.external : undefined; + resourceInputs["externalRules"] = state ? state.externalRules : undefined; resourceInputs["hidden"] = state ? state.hidden : undefined; resourceInputs["labels"] = state ? state.labels : undefined; resourceInputs["locked"] = state ? state.locked : undefined; @@ -172,6 +177,7 @@ export class RoleTemplate extends pulumi.CustomResource { resourceInputs["defaultRole"] = args ? args.defaultRole : undefined; resourceInputs["description"] = args ? args.description : undefined; resourceInputs["external"] = args ? args.external : undefined; + resourceInputs["externalRules"] = args ? args.externalRules : undefined; resourceInputs["hidden"] = args ? args.hidden : undefined; resourceInputs["labels"] = args ? args.labels : undefined; resourceInputs["locked"] = args ? args.locked : undefined; @@ -217,6 +223,10 @@ export interface RoleTemplateState { * External role template. Default `false` (bool) */ external?: pulumi.Input; + /** + * External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + */ + externalRules?: pulumi.Input[]>; /** * Hidden role template. Default `false` (bool) */ @@ -271,6 +281,10 @@ export interface RoleTemplateArgs { * External role template. Default `false` (bool) */ external?: pulumi.Input; + /** + * External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + */ + externalRules?: pulumi.Input[]>; /** * Hidden role template. Default `false` (bool) */ diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 4951b948e..7461728cb 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -398,6 +398,10 @@ export interface ClusterAksConfigV2 { * The AKS node pools to use. Required if `import=false` */ nodePools?: pulumi.Input[]>; + /** + * The AKS node resource group name + */ + nodeResourceGroup?: pulumi.Input; /** * Is AKS cluster private? */ @@ -4461,6 +4465,52 @@ export interface GetPodSecurityPolicyTemplateSupplementalGroupRangeArgs { min: pulumi.Input; } +export interface GetRoleTemplateExternalRule { + /** + * Policy rule api groups + */ + apiGroups?: string[]; + /** + * Policy rule non resource urls + */ + nonResourceUrls?: string[]; + /** + * Policy rule resource names + */ + resourceNames?: string[]; + /** + * Policy rule resources + */ + resources?: string[]; + /** + * Policy rule verbs + */ + verbs?: string[]; +} + +export interface GetRoleTemplateExternalRuleArgs { + /** + * Policy rule api groups + */ + apiGroups?: pulumi.Input[]>; + /** + * Policy rule non resource urls + */ + nonResourceUrls?: pulumi.Input[]>; + /** + * Policy rule resource names + */ + resourceNames?: pulumi.Input[]>; + /** + * Policy rule resources + */ + resources?: pulumi.Input[]>; + /** + * Policy rule verbs + */ + verbs?: pulumi.Input[]>; +} + export interface GlobalDnsProviderAlidnsConfig { accessKey: pulumi.Input; secretKey: pulumi.Input; @@ -6475,6 +6525,29 @@ export interface RegistryRegistry { username?: pulumi.Input; } +export interface RoleTemplateExternalRule { + /** + * Policy rule api groups + */ + apiGroups?: pulumi.Input[]>; + /** + * Policy rule non resource urls + */ + nonResourceUrls?: pulumi.Input[]>; + /** + * Policy rule resource names + */ + resourceNames?: pulumi.Input[]>; + /** + * Policy rule resources + */ + resources?: pulumi.Input[]>; + /** + * Policy rule verbs + */ + verbs?: pulumi.Input[]>; +} + export interface RoleTemplateRule { /** * Policy rule api groups diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 08c2252cd..80bb2b0ed 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -398,6 +398,10 @@ export interface ClusterAksConfigV2 { * The AKS node pools to use. Required if `import=false` */ nodePools?: outputs.ClusterAksConfigV2NodePool[]; + /** + * The AKS node resource group name + */ + nodeResourceGroup: string; /** * Is AKS cluster private? */ @@ -4329,6 +4333,10 @@ export interface GetClusterAksConfigV2 { * The AKS node pools to use. Required if `import=false` */ nodePools?: outputs.GetClusterAksConfigV2NodePool[]; + /** + * The AKS node resource group name + */ + nodeResourceGroup: string; /** * Is AKS cluster private? */ @@ -8410,6 +8418,29 @@ export interface GetRegistryRegistry { username?: string; } +export interface GetRoleTemplateExternalRule { + /** + * Policy rule api groups + */ + apiGroups?: string[]; + /** + * Policy rule non resource urls + */ + nonResourceUrls?: string[]; + /** + * Policy rule resource names + */ + resourceNames?: string[]; + /** + * Policy rule resources + */ + resources?: string[]; + /** + * Policy rule verbs + */ + verbs?: string[]; +} + export interface GetRoleTemplateRule { /** * Policy rule api groups @@ -10447,6 +10478,29 @@ export interface RegistryRegistry { username?: string; } +export interface RoleTemplateExternalRule { + /** + * Policy rule api groups + */ + apiGroups?: string[]; + /** + * Policy rule non resource urls + */ + nonResourceUrls?: string[]; + /** + * Policy rule resource names + */ + resourceNames?: string[]; + /** + * Policy rule resources + */ + resources?: string[]; + /** + * Policy rule verbs + */ + verbs?: string[]; +} + export interface RoleTemplateRule { /** * Policy rule api groups diff --git a/sdk/python/pulumi_rancher2/_inputs.py b/sdk/python/pulumi_rancher2/_inputs.py index 10aef33f0..98858bfa6 100644 --- a/sdk/python/pulumi_rancher2/_inputs.py +++ b/sdk/python/pulumi_rancher2/_inputs.py @@ -295,6 +295,7 @@ 'ProjectResourceQuotaNamespaceDefaultLimitArgs', 'ProjectResourceQuotaProjectLimitArgs', 'RegistryRegistryArgs', + 'RoleTemplateExternalRuleArgs', 'RoleTemplateRuleArgs', 'GetNotifierDingtalkConfigArgs', 'GetNotifierMsteamsConfigArgs', @@ -313,6 +314,7 @@ 'GetPodSecurityPolicyTemplateSeLinuxSeLinuxOptionArgs', 'GetPodSecurityPolicyTemplateSupplementalGroupArgs', 'GetPodSecurityPolicyTemplateSupplementalGroupRangeArgs', + 'GetRoleTemplateExternalRuleArgs', ] @pulumi.input_type @@ -1477,6 +1479,7 @@ def __init__(__self__, *, network_policy: Optional[pulumi.Input[str]] = None, network_service_cidr: Optional[pulumi.Input[str]] = None, node_pools: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterAksConfigV2NodePoolArgs']]]] = None, + node_resource_group: Optional[pulumi.Input[str]] = None, private_cluster: Optional[pulumi.Input[bool]] = None, subnet: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, Any]]] = None, @@ -1507,6 +1510,7 @@ def __init__(__self__, *, :param pulumi.Input[str] network_policy: The AKS network policy :param pulumi.Input[str] network_service_cidr: The AKS network service cidr :param pulumi.Input[Sequence[pulumi.Input['ClusterAksConfigV2NodePoolArgs']]] node_pools: The AKS node pools to use. Required if `import=false` + :param pulumi.Input[str] node_resource_group: The AKS node resource group name :param pulumi.Input[bool] private_cluster: Is AKS cluster private? :param pulumi.Input[str] subnet: The AKS subnet :param pulumi.Input[Mapping[str, Any]] tags: The AKS cluster tags @@ -1558,6 +1562,8 @@ def __init__(__self__, *, pulumi.set(__self__, "network_service_cidr", network_service_cidr) if node_pools is not None: pulumi.set(__self__, "node_pools", node_pools) + if node_resource_group is not None: + pulumi.set(__self__, "node_resource_group", node_resource_group) if private_cluster is not None: pulumi.set(__self__, "private_cluster", private_cluster) if subnet is not None: @@ -1857,6 +1863,18 @@ def node_pools(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClusterAksC def node_pools(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterAksConfigV2NodePoolArgs']]]]): pulumi.set(self, "node_pools", value) + @property + @pulumi.getter(name="nodeResourceGroup") + def node_resource_group(self) -> Optional[pulumi.Input[str]]: + """ + The AKS node resource group name + """ + return pulumi.get(self, "node_resource_group") + + @node_resource_group.setter + def node_resource_group(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "node_resource_group", value) + @property @pulumi.getter(name="privateCluster") def private_cluster(self) -> Optional[pulumi.Input[bool]]: @@ -30388,6 +30406,93 @@ def username(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "username", value) +@pulumi.input_type +class RoleTemplateExternalRuleArgs: + def __init__(__self__, *, + api_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + non_resource_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + resource_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + verbs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] api_groups: Policy rule api groups + :param pulumi.Input[Sequence[pulumi.Input[str]]] non_resource_urls: Policy rule non resource urls + :param pulumi.Input[Sequence[pulumi.Input[str]]] resource_names: Policy rule resource names + :param pulumi.Input[Sequence[pulumi.Input[str]]] resources: Policy rule resources + :param pulumi.Input[Sequence[pulumi.Input[str]]] verbs: Policy rule verbs + """ + if api_groups is not None: + pulumi.set(__self__, "api_groups", api_groups) + if non_resource_urls is not None: + pulumi.set(__self__, "non_resource_urls", non_resource_urls) + if resource_names is not None: + pulumi.set(__self__, "resource_names", resource_names) + if resources is not None: + pulumi.set(__self__, "resources", resources) + if verbs is not None: + pulumi.set(__self__, "verbs", verbs) + + @property + @pulumi.getter(name="apiGroups") + def api_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Policy rule api groups + """ + return pulumi.get(self, "api_groups") + + @api_groups.setter + def api_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "api_groups", value) + + @property + @pulumi.getter(name="nonResourceUrls") + def non_resource_urls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Policy rule non resource urls + """ + return pulumi.get(self, "non_resource_urls") + + @non_resource_urls.setter + def non_resource_urls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "non_resource_urls", value) + + @property + @pulumi.getter(name="resourceNames") + def resource_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Policy rule resource names + """ + return pulumi.get(self, "resource_names") + + @resource_names.setter + def resource_names(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "resource_names", value) + + @property + @pulumi.getter + def resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Policy rule resources + """ + return pulumi.get(self, "resources") + + @resources.setter + def resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "resources", value) + + @property + @pulumi.getter + def verbs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Policy rule verbs + """ + return pulumi.get(self, "verbs") + + @verbs.setter + def verbs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "verbs", value) + + @pulumi.input_type class RoleTemplateRuleArgs: def __init__(__self__, *, @@ -31133,3 +31238,90 @@ def min(self, value: int): pulumi.set(self, "min", value) +@pulumi.input_type +class GetRoleTemplateExternalRuleArgs: + def __init__(__self__, *, + api_groups: Optional[Sequence[str]] = None, + non_resource_urls: Optional[Sequence[str]] = None, + resource_names: Optional[Sequence[str]] = None, + resources: Optional[Sequence[str]] = None, + verbs: Optional[Sequence[str]] = None): + """ + :param Sequence[str] api_groups: Policy rule api groups + :param Sequence[str] non_resource_urls: Policy rule non resource urls + :param Sequence[str] resource_names: Policy rule resource names + :param Sequence[str] resources: Policy rule resources + :param Sequence[str] verbs: Policy rule verbs + """ + if api_groups is not None: + pulumi.set(__self__, "api_groups", api_groups) + if non_resource_urls is not None: + pulumi.set(__self__, "non_resource_urls", non_resource_urls) + if resource_names is not None: + pulumi.set(__self__, "resource_names", resource_names) + if resources is not None: + pulumi.set(__self__, "resources", resources) + if verbs is not None: + pulumi.set(__self__, "verbs", verbs) + + @property + @pulumi.getter(name="apiGroups") + def api_groups(self) -> Optional[Sequence[str]]: + """ + Policy rule api groups + """ + return pulumi.get(self, "api_groups") + + @api_groups.setter + def api_groups(self, value: Optional[Sequence[str]]): + pulumi.set(self, "api_groups", value) + + @property + @pulumi.getter(name="nonResourceUrls") + def non_resource_urls(self) -> Optional[Sequence[str]]: + """ + Policy rule non resource urls + """ + return pulumi.get(self, "non_resource_urls") + + @non_resource_urls.setter + def non_resource_urls(self, value: Optional[Sequence[str]]): + pulumi.set(self, "non_resource_urls", value) + + @property + @pulumi.getter(name="resourceNames") + def resource_names(self) -> Optional[Sequence[str]]: + """ + Policy rule resource names + """ + return pulumi.get(self, "resource_names") + + @resource_names.setter + def resource_names(self, value: Optional[Sequence[str]]): + pulumi.set(self, "resource_names", value) + + @property + @pulumi.getter + def resources(self) -> Optional[Sequence[str]]: + """ + Policy rule resources + """ + return pulumi.get(self, "resources") + + @resources.setter + def resources(self, value: Optional[Sequence[str]]): + pulumi.set(self, "resources", value) + + @property + @pulumi.getter + def verbs(self) -> Optional[Sequence[str]]: + """ + Policy rule verbs + """ + return pulumi.get(self, "verbs") + + @verbs.setter + def verbs(self, value: Optional[Sequence[str]]): + pulumi.set(self, "verbs", value) + + diff --git a/sdk/python/pulumi_rancher2/cluster.py b/sdk/python/pulumi_rancher2/cluster.py index 9d7e91c70..540157df3 100644 --- a/sdk/python/pulumi_rancher2/cluster.py +++ b/sdk/python/pulumi_rancher2/cluster.py @@ -1779,6 +1779,10 @@ def __init__(__self__, dns_prefix="", kubernetes_version="1.24.6", network_plugin="", + virtual_network="", + virtual_network_resource_group="", + subnet="", + node_resource_group="", node_pools=[ rancher2.ClusterAksConfigV2NodePoolArgs( availability_zones=[ @@ -2373,6 +2377,10 @@ def __init__(__self__, dns_prefix="", kubernetes_version="1.24.6", network_plugin="", + virtual_network="", + virtual_network_resource_group="", + subnet="", + node_resource_group="", node_pools=[ rancher2.ClusterAksConfigV2NodePoolArgs( availability_zones=[ diff --git a/sdk/python/pulumi_rancher2/get_role_template.py b/sdk/python/pulumi_rancher2/get_role_template.py index bc1ace23e..bfa33758f 100644 --- a/sdk/python/pulumi_rancher2/get_role_template.py +++ b/sdk/python/pulumi_rancher2/get_role_template.py @@ -9,6 +9,7 @@ from typing import Any, Mapping, Optional, Sequence, Union, overload from . import _utilities from . import outputs +from ._inputs import * __all__ = [ 'GetRoleTemplateResult', @@ -22,7 +23,7 @@ class GetRoleTemplateResult: """ A collection of values returned by getRoleTemplate. """ - def __init__(__self__, administrative=None, annotations=None, builtin=None, context=None, default_role=None, description=None, external=None, hidden=None, id=None, labels=None, locked=None, name=None, role_template_ids=None, rules=None): + def __init__(__self__, administrative=None, annotations=None, builtin=None, context=None, default_role=None, description=None, external=None, external_rules=None, hidden=None, id=None, labels=None, locked=None, name=None, role_template_ids=None, rules=None): if administrative and not isinstance(administrative, bool): raise TypeError("Expected argument 'administrative' to be a bool") pulumi.set(__self__, "administrative", administrative) @@ -44,6 +45,9 @@ def __init__(__self__, administrative=None, annotations=None, builtin=None, cont if external and not isinstance(external, bool): raise TypeError("Expected argument 'external' to be a bool") pulumi.set(__self__, "external", external) + if external_rules and not isinstance(external_rules, list): + raise TypeError("Expected argument 'external_rules' to be a list") + pulumi.set(__self__, "external_rules", external_rules) if hidden and not isinstance(hidden, bool): raise TypeError("Expected argument 'hidden' to be a bool") pulumi.set(__self__, "hidden", hidden) @@ -119,6 +123,14 @@ def external(self) -> bool: """ return pulumi.get(self, "external") + @property + @pulumi.getter(name="externalRules") + def external_rules(self) -> Sequence['outputs.GetRoleTemplateExternalRuleResult']: + """ + (Computed) External rules used for authorization. (list) + """ + return pulumi.get(self, "external_rules") + @property @pulumi.getter def hidden(self) -> bool: @@ -186,6 +198,7 @@ def __await__(self): default_role=self.default_role, description=self.description, external=self.external, + external_rules=self.external_rules, hidden=self.hidden, id=self.id, labels=self.labels, @@ -196,6 +209,7 @@ def __await__(self): def get_role_template(context: Optional[str] = None, + external_rules: Optional[Sequence[pulumi.InputType['GetRoleTemplateExternalRuleArgs']]] = None, name: Optional[str] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetRoleTemplateResult: """ @@ -212,10 +226,12 @@ def get_role_template(context: Optional[str] = None, :param str context: Role template context. `cluster` and `project` values are supported (string) + :param Sequence[pulumi.InputType['GetRoleTemplateExternalRuleArgs']] external_rules: (Computed) External rules used for authorization. (list) :param str name: The name of the Role Template (string) """ __args__ = dict() __args__['context'] = context + __args__['externalRules'] = external_rules __args__['name'] = name opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke('rancher2:index/getRoleTemplate:getRoleTemplate', __args__, opts=opts, typ=GetRoleTemplateResult).value @@ -228,6 +244,7 @@ def get_role_template(context: Optional[str] = None, default_role=pulumi.get(__ret__, 'default_role'), description=pulumi.get(__ret__, 'description'), external=pulumi.get(__ret__, 'external'), + external_rules=pulumi.get(__ret__, 'external_rules'), hidden=pulumi.get(__ret__, 'hidden'), id=pulumi.get(__ret__, 'id'), labels=pulumi.get(__ret__, 'labels'), @@ -239,6 +256,7 @@ def get_role_template(context: Optional[str] = None, @_utilities.lift_output_func(get_role_template) def get_role_template_output(context: Optional[pulumi.Input[Optional[str]]] = None, + external_rules: Optional[pulumi.Input[Optional[Sequence[pulumi.InputType['GetRoleTemplateExternalRuleArgs']]]]] = None, name: Optional[pulumi.Input[str]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetRoleTemplateResult]: """ @@ -255,6 +273,7 @@ def get_role_template_output(context: Optional[pulumi.Input[Optional[str]]] = No :param str context: Role template context. `cluster` and `project` values are supported (string) + :param Sequence[pulumi.InputType['GetRoleTemplateExternalRuleArgs']] external_rules: (Computed) External rules used for authorization. (list) :param str name: The name of the Role Template (string) """ ... diff --git a/sdk/python/pulumi_rancher2/global_role.py b/sdk/python/pulumi_rancher2/global_role.py index 86d596e84..b17437c16 100644 --- a/sdk/python/pulumi_rancher2/global_role.py +++ b/sdk/python/pulumi_rancher2/global_role.py @@ -27,7 +27,7 @@ def __init__(__self__, *, The set of arguments for constructing a GlobalRole resource. :param pulumi.Input[Mapping[str, Any]] annotations: Annotations for global role object (map) :param pulumi.Input[str] description: Global role description (string) - :param pulumi.Input[Sequence[pulumi.Input[str]]] inherited_cluster_roles: Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + :param pulumi.Input[Sequence[pulumi.Input[str]]] inherited_cluster_roles: Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) :param pulumi.Input[Mapping[str, Any]] labels: Labels for global role object (map) :param pulumi.Input[str] name: Global role name (string) :param pulumi.Input[bool] new_user_default: Whether or not this role should be added to new users. Default `false` (bool) @@ -76,7 +76,7 @@ def description(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="inheritedClusterRoles") def inherited_cluster_roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) """ return pulumi.get(self, "inherited_cluster_roles") @@ -149,7 +149,7 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, Any]] annotations: Annotations for global role object (map) :param pulumi.Input[bool] builtin: (Computed) Builtin global role (bool) :param pulumi.Input[str] description: Global role description (string) - :param pulumi.Input[Sequence[pulumi.Input[str]]] inherited_cluster_roles: Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + :param pulumi.Input[Sequence[pulumi.Input[str]]] inherited_cluster_roles: Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) :param pulumi.Input[Mapping[str, Any]] labels: Labels for global role object (map) :param pulumi.Input[str] name: Global role name (string) :param pulumi.Input[bool] new_user_default: Whether or not this role should be added to new users. Default `false` (bool) @@ -212,7 +212,7 @@ def description(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="inheritedClusterRoles") def inherited_cluster_roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) """ return pulumi.get(self, "inherited_cluster_roles") @@ -315,7 +315,7 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Mapping[str, Any]] annotations: Annotations for global role object (map) :param pulumi.Input[str] description: Global role description (string) - :param pulumi.Input[Sequence[pulumi.Input[str]]] inherited_cluster_roles: Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + :param pulumi.Input[Sequence[pulumi.Input[str]]] inherited_cluster_roles: Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) :param pulumi.Input[Mapping[str, Any]] labels: Labels for global role object (map) :param pulumi.Input[str] name: Global role name (string) :param pulumi.Input[bool] new_user_default: Whether or not this role should be added to new users. Default `false` (bool) @@ -423,7 +423,7 @@ def get(resource_name: str, :param pulumi.Input[Mapping[str, Any]] annotations: Annotations for global role object (map) :param pulumi.Input[bool] builtin: (Computed) Builtin global role (bool) :param pulumi.Input[str] description: Global role description (string) - :param pulumi.Input[Sequence[pulumi.Input[str]]] inherited_cluster_roles: Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + :param pulumi.Input[Sequence[pulumi.Input[str]]] inherited_cluster_roles: Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) :param pulumi.Input[Mapping[str, Any]] labels: Labels for global role object (map) :param pulumi.Input[str] name: Global role name (string) :param pulumi.Input[bool] new_user_default: Whether or not this role should be added to new users. Default `false` (bool) @@ -471,7 +471,7 @@ def description(self) -> pulumi.Output[str]: @pulumi.getter(name="inheritedClusterRoles") def inherited_cluster_roles(self) -> pulumi.Output[Optional[Sequence[str]]]: """ - Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster + Names of role templates whose permissions are granted by this global role in every cluster besides the local cluster (list) """ return pulumi.get(self, "inherited_cluster_roles") diff --git a/sdk/python/pulumi_rancher2/outputs.py b/sdk/python/pulumi_rancher2/outputs.py index cccd6b0bf..b89dba7fc 100644 --- a/sdk/python/pulumi_rancher2/outputs.py +++ b/sdk/python/pulumi_rancher2/outputs.py @@ -296,6 +296,7 @@ 'ProjectResourceQuotaNamespaceDefaultLimit', 'ProjectResourceQuotaProjectLimit', 'RegistryRegistry', + 'RoleTemplateExternalRule', 'RoleTemplateRule', 'GetClusterAksConfigResult', 'GetClusterAksConfigV2Result', @@ -540,6 +541,7 @@ 'GetProjectResourceQuotaNamespaceDefaultLimitResult', 'GetProjectResourceQuotaProjectLimitResult', 'GetRegistryRegistryResult', + 'GetRoleTemplateExternalRuleResult', 'GetRoleTemplateRuleResult', ] @@ -1680,6 +1682,8 @@ def __key_warning(key: str): suggest = "network_service_cidr" elif key == "nodePools": suggest = "node_pools" + elif key == "nodeResourceGroup": + suggest = "node_resource_group" elif key == "privateCluster": suggest = "private_cluster" elif key == "virtualNetwork": @@ -1723,6 +1727,7 @@ def __init__(__self__, *, network_policy: Optional[str] = None, network_service_cidr: Optional[str] = None, node_pools: Optional[Sequence['outputs.ClusterAksConfigV2NodePool']] = None, + node_resource_group: Optional[str] = None, private_cluster: Optional[bool] = None, subnet: Optional[str] = None, tags: Optional[Mapping[str, Any]] = None, @@ -1753,6 +1758,7 @@ def __init__(__self__, *, :param str network_policy: The AKS network policy :param str network_service_cidr: The AKS network service cidr :param Sequence['ClusterAksConfigV2NodePoolArgs'] node_pools: The AKS node pools to use. Required if `import=false` + :param str node_resource_group: The AKS node resource group name :param bool private_cluster: Is AKS cluster private? :param str subnet: The AKS subnet :param Mapping[str, Any] tags: The AKS cluster tags @@ -1804,6 +1810,8 @@ def __init__(__self__, *, pulumi.set(__self__, "network_service_cidr", network_service_cidr) if node_pools is not None: pulumi.set(__self__, "node_pools", node_pools) + if node_resource_group is not None: + pulumi.set(__self__, "node_resource_group", node_resource_group) if private_cluster is not None: pulumi.set(__self__, "private_cluster", private_cluster) if subnet is not None: @@ -2007,6 +2015,14 @@ def node_pools(self) -> Optional[Sequence['outputs.ClusterAksConfigV2NodePool']] """ return pulumi.get(self, "node_pools") + @property + @pulumi.getter(name="nodeResourceGroup") + def node_resource_group(self) -> Optional[str]: + """ + The AKS node resource group name + """ + return pulumi.get(self, "node_resource_group") + @property @pulumi.getter(name="privateCluster") def private_cluster(self) -> Optional[bool]: @@ -28496,6 +28512,94 @@ def username(self) -> Optional[str]: return pulumi.get(self, "username") +@pulumi.output_type +class RoleTemplateExternalRule(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "apiGroups": + suggest = "api_groups" + elif key == "nonResourceUrls": + suggest = "non_resource_urls" + elif key == "resourceNames": + suggest = "resource_names" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in RoleTemplateExternalRule. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + RoleTemplateExternalRule.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + RoleTemplateExternalRule.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + api_groups: Optional[Sequence[str]] = None, + non_resource_urls: Optional[Sequence[str]] = None, + resource_names: Optional[Sequence[str]] = None, + resources: Optional[Sequence[str]] = None, + verbs: Optional[Sequence[str]] = None): + """ + :param Sequence[str] api_groups: Policy rule api groups + :param Sequence[str] non_resource_urls: Policy rule non resource urls + :param Sequence[str] resource_names: Policy rule resource names + :param Sequence[str] resources: Policy rule resources + :param Sequence[str] verbs: Policy rule verbs + """ + if api_groups is not None: + pulumi.set(__self__, "api_groups", api_groups) + if non_resource_urls is not None: + pulumi.set(__self__, "non_resource_urls", non_resource_urls) + if resource_names is not None: + pulumi.set(__self__, "resource_names", resource_names) + if resources is not None: + pulumi.set(__self__, "resources", resources) + if verbs is not None: + pulumi.set(__self__, "verbs", verbs) + + @property + @pulumi.getter(name="apiGroups") + def api_groups(self) -> Optional[Sequence[str]]: + """ + Policy rule api groups + """ + return pulumi.get(self, "api_groups") + + @property + @pulumi.getter(name="nonResourceUrls") + def non_resource_urls(self) -> Optional[Sequence[str]]: + """ + Policy rule non resource urls + """ + return pulumi.get(self, "non_resource_urls") + + @property + @pulumi.getter(name="resourceNames") + def resource_names(self) -> Optional[Sequence[str]]: + """ + Policy rule resource names + """ + return pulumi.get(self, "resource_names") + + @property + @pulumi.getter + def resources(self) -> Optional[Sequence[str]]: + """ + Policy rule resources + """ + return pulumi.get(self, "resources") + + @property + @pulumi.getter + def verbs(self) -> Optional[Sequence[str]]: + """ + Policy rule verbs + """ + return pulumi.get(self, "verbs") + + @pulumi.output_type class RoleTemplateRule(dict): @staticmethod @@ -29062,6 +29166,7 @@ def __init__(__self__, *, network_pod_cidr: str, network_policy: str, network_service_cidr: str, + node_resource_group: str, private_cluster: bool, resource_group: str, resource_location: str, @@ -29092,6 +29197,7 @@ def __init__(__self__, *, :param str network_pod_cidr: The AKS network pod cidr :param str network_policy: The AKS network policy :param str network_service_cidr: The AKS network service cidr + :param str node_resource_group: The AKS node resource group name :param bool private_cluster: Is AKS cluster private? :param str resource_group: The AKS resource group :param str resource_location: The AKS resource location @@ -29122,6 +29228,7 @@ def __init__(__self__, *, pulumi.set(__self__, "network_pod_cidr", network_pod_cidr) pulumi.set(__self__, "network_policy", network_policy) pulumi.set(__self__, "network_service_cidr", network_service_cidr) + pulumi.set(__self__, "node_resource_group", node_resource_group) pulumi.set(__self__, "private_cluster", private_cluster) pulumi.set(__self__, "resource_group", resource_group) pulumi.set(__self__, "resource_location", resource_location) @@ -29258,6 +29365,14 @@ def network_service_cidr(self) -> str: """ return pulumi.get(self, "network_service_cidr") + @property + @pulumi.getter(name="nodeResourceGroup") + def node_resource_group(self) -> str: + """ + The AKS node resource group name + """ + return pulumi.get(self, "node_resource_group") + @property @pulumi.getter(name="privateCluster") def private_cluster(self) -> bool: @@ -44279,6 +44394,73 @@ def username(self) -> Optional[str]: return pulumi.get(self, "username") +@pulumi.output_type +class GetRoleTemplateExternalRuleResult(dict): + def __init__(__self__, *, + api_groups: Optional[Sequence[str]] = None, + non_resource_urls: Optional[Sequence[str]] = None, + resource_names: Optional[Sequence[str]] = None, + resources: Optional[Sequence[str]] = None, + verbs: Optional[Sequence[str]] = None): + """ + :param Sequence[str] api_groups: Policy rule api groups + :param Sequence[str] non_resource_urls: Policy rule non resource urls + :param Sequence[str] resource_names: Policy rule resource names + :param Sequence[str] resources: Policy rule resources + :param Sequence[str] verbs: Policy rule verbs + """ + if api_groups is not None: + pulumi.set(__self__, "api_groups", api_groups) + if non_resource_urls is not None: + pulumi.set(__self__, "non_resource_urls", non_resource_urls) + if resource_names is not None: + pulumi.set(__self__, "resource_names", resource_names) + if resources is not None: + pulumi.set(__self__, "resources", resources) + if verbs is not None: + pulumi.set(__self__, "verbs", verbs) + + @property + @pulumi.getter(name="apiGroups") + def api_groups(self) -> Optional[Sequence[str]]: + """ + Policy rule api groups + """ + return pulumi.get(self, "api_groups") + + @property + @pulumi.getter(name="nonResourceUrls") + def non_resource_urls(self) -> Optional[Sequence[str]]: + """ + Policy rule non resource urls + """ + return pulumi.get(self, "non_resource_urls") + + @property + @pulumi.getter(name="resourceNames") + def resource_names(self) -> Optional[Sequence[str]]: + """ + Policy rule resource names + """ + return pulumi.get(self, "resource_names") + + @property + @pulumi.getter + def resources(self) -> Optional[Sequence[str]]: + """ + Policy rule resources + """ + return pulumi.get(self, "resources") + + @property + @pulumi.getter + def verbs(self) -> Optional[Sequence[str]]: + """ + Policy rule verbs + """ + return pulumi.get(self, "verbs") + + @pulumi.output_type class GetRoleTemplateRuleResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_rancher2/role_template.py b/sdk/python/pulumi_rancher2/role_template.py index 70a7d4ccb..18c409055 100644 --- a/sdk/python/pulumi_rancher2/role_template.py +++ b/sdk/python/pulumi_rancher2/role_template.py @@ -22,6 +22,7 @@ def __init__(__self__, *, default_role: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, external: Optional[pulumi.Input[bool]] = None, + external_rules: Optional[pulumi.Input[Sequence[pulumi.Input['RoleTemplateExternalRuleArgs']]]] = None, hidden: Optional[pulumi.Input[bool]] = None, labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, locked: Optional[pulumi.Input[bool]] = None, @@ -36,6 +37,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] default_role: Default role template for new created cluster or project. Default `false` (bool) :param pulumi.Input[str] description: Role template description (string) :param pulumi.Input[bool] external: External role template. Default `false` (bool) + :param pulumi.Input[Sequence[pulumi.Input['RoleTemplateExternalRuleArgs']]] external_rules: External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) :param pulumi.Input[bool] hidden: Hidden role template. Default `false` (bool) :param pulumi.Input[Mapping[str, Any]] labels: Labels for role template object (map) :param pulumi.Input[bool] locked: Locked role template. Default `false` (bool) @@ -55,6 +57,8 @@ def __init__(__self__, *, pulumi.set(__self__, "description", description) if external is not None: pulumi.set(__self__, "external", external) + if external_rules is not None: + pulumi.set(__self__, "external_rules", external_rules) if hidden is not None: pulumi.set(__self__, "hidden", hidden) if labels is not None: @@ -140,6 +144,18 @@ def external(self) -> Optional[pulumi.Input[bool]]: def external(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "external", value) + @property + @pulumi.getter(name="externalRules") + def external_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RoleTemplateExternalRuleArgs']]]]: + """ + External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + """ + return pulumi.get(self, "external_rules") + + @external_rules.setter + def external_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RoleTemplateExternalRuleArgs']]]]): + pulumi.set(self, "external_rules", value) + @property @pulumi.getter def hidden(self) -> Optional[pulumi.Input[bool]]: @@ -223,6 +239,7 @@ def __init__(__self__, *, default_role: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, external: Optional[pulumi.Input[bool]] = None, + external_rules: Optional[pulumi.Input[Sequence[pulumi.Input['RoleTemplateExternalRuleArgs']]]] = None, hidden: Optional[pulumi.Input[bool]] = None, labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, locked: Optional[pulumi.Input[bool]] = None, @@ -238,6 +255,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] default_role: Default role template for new created cluster or project. Default `false` (bool) :param pulumi.Input[str] description: Role template description (string) :param pulumi.Input[bool] external: External role template. Default `false` (bool) + :param pulumi.Input[Sequence[pulumi.Input['RoleTemplateExternalRuleArgs']]] external_rules: External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) :param pulumi.Input[bool] hidden: Hidden role template. Default `false` (bool) :param pulumi.Input[Mapping[str, Any]] labels: Labels for role template object (map) :param pulumi.Input[bool] locked: Locked role template. Default `false` (bool) @@ -259,6 +277,8 @@ def __init__(__self__, *, pulumi.set(__self__, "description", description) if external is not None: pulumi.set(__self__, "external", external) + if external_rules is not None: + pulumi.set(__self__, "external_rules", external_rules) if hidden is not None: pulumi.set(__self__, "hidden", hidden) if labels is not None: @@ -356,6 +376,18 @@ def external(self) -> Optional[pulumi.Input[bool]]: def external(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "external", value) + @property + @pulumi.getter(name="externalRules") + def external_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RoleTemplateExternalRuleArgs']]]]: + """ + External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + """ + return pulumi.get(self, "external_rules") + + @external_rules.setter + def external_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RoleTemplateExternalRuleArgs']]]]): + pulumi.set(self, "external_rules", value) + @property @pulumi.getter def hidden(self) -> Optional[pulumi.Input[bool]]: @@ -440,6 +472,7 @@ def __init__(__self__, default_role: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, external: Optional[pulumi.Input[bool]] = None, + external_rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RoleTemplateExternalRuleArgs']]]]] = None, hidden: Optional[pulumi.Input[bool]] = None, labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, locked: Optional[pulumi.Input[bool]] = None, @@ -504,6 +537,7 @@ def __init__(__self__, :param pulumi.Input[bool] default_role: Default role template for new created cluster or project. Default `false` (bool) :param pulumi.Input[str] description: Role template description (string) :param pulumi.Input[bool] external: External role template. Default `false` (bool) + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RoleTemplateExternalRuleArgs']]]] external_rules: External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) :param pulumi.Input[bool] hidden: Hidden role template. Default `false` (bool) :param pulumi.Input[Mapping[str, Any]] labels: Labels for role template object (map) :param pulumi.Input[bool] locked: Locked role template. Default `false` (bool) @@ -587,6 +621,7 @@ def _internal_init(__self__, default_role: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, external: Optional[pulumi.Input[bool]] = None, + external_rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RoleTemplateExternalRuleArgs']]]]] = None, hidden: Optional[pulumi.Input[bool]] = None, labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, locked: Optional[pulumi.Input[bool]] = None, @@ -608,6 +643,7 @@ def _internal_init(__self__, __props__.__dict__["default_role"] = default_role __props__.__dict__["description"] = description __props__.__dict__["external"] = external + __props__.__dict__["external_rules"] = external_rules __props__.__dict__["hidden"] = hidden __props__.__dict__["labels"] = labels __props__.__dict__["locked"] = locked @@ -632,6 +668,7 @@ def get(resource_name: str, default_role: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, external: Optional[pulumi.Input[bool]] = None, + external_rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RoleTemplateExternalRuleArgs']]]]] = None, hidden: Optional[pulumi.Input[bool]] = None, labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, locked: Optional[pulumi.Input[bool]] = None, @@ -652,6 +689,7 @@ def get(resource_name: str, :param pulumi.Input[bool] default_role: Default role template for new created cluster or project. Default `false` (bool) :param pulumi.Input[str] description: Role template description (string) :param pulumi.Input[bool] external: External role template. Default `false` (bool) + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RoleTemplateExternalRuleArgs']]]] external_rules: External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) :param pulumi.Input[bool] hidden: Hidden role template. Default `false` (bool) :param pulumi.Input[Mapping[str, Any]] labels: Labels for role template object (map) :param pulumi.Input[bool] locked: Locked role template. Default `false` (bool) @@ -670,6 +708,7 @@ def get(resource_name: str, __props__.__dict__["default_role"] = default_role __props__.__dict__["description"] = description __props__.__dict__["external"] = external + __props__.__dict__["external_rules"] = external_rules __props__.__dict__["hidden"] = hidden __props__.__dict__["labels"] = labels __props__.__dict__["locked"] = locked @@ -734,6 +773,14 @@ def external(self) -> pulumi.Output[Optional[bool]]: """ return pulumi.get(self, "external") + @property + @pulumi.getter(name="externalRules") + def external_rules(self) -> pulumi.Output[Sequence['outputs.RoleTemplateExternalRule']]: + """ + External rules used for authorization. This field is required when `external=true` and no underlying ClusterRole exists. (list) + """ + return pulumi.get(self, "external_rules") + @property @pulumi.getter def hidden(self) -> pulumi.Output[Optional[bool]]: