diff --git a/.ci-mgmt.yaml b/.ci-mgmt.yaml index d2eecaff..180d8fe0 100644 --- a/.ci-mgmt.yaml +++ b/.ci-mgmt.yaml @@ -26,10 +26,10 @@ languages: publish: sdk: "all,!java" cdn: false -#license: -# ignore: - # Don't check for the license of the local shim package - #- github.com/scaleway/terraform-provider-scaleway/v2/shim +license: + ignore: + # The following is Apache 2.0 licensed but the license file is not detected correctly + - github.com/cyberphone/json-canonicalization/go/src/webpki.org/jsoncanonicalizer toolVersions: go: "1.22.x" pulumiConvert: 1 diff --git a/.github/workflows/license.yml b/.github/workflows/license.yml index ce6c5e43..040b01f7 100644 --- a/.github/workflows/license.yml +++ b/.github/workflows/license.yml @@ -42,6 +42,7 @@ jobs: with: module-path: provider ignore-modules: >- + github.com/cyberphone/json-canonicalization/go/src/webpki.org/jsoncanonicalizer, github.com/aead/chacha20, github.com/apache/arrow/go/v12, github.com/apache/thrift/lib/go/thrift, diff --git a/provider/cmd/pulumi-resource-talos/bridge-metadata.json b/provider/cmd/pulumi-resource-talos/bridge-metadata.json index 3786c62d..19008b1b 100644 --- a/provider/cmd/pulumi-resource-talos/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-talos/bridge-metadata.json @@ -1,6 +1,12 @@ { "auto-aliasing": { "resources": { + "talos_cluster_kubeconfig": { + "current": "talos:cluster/kubeconfig:Kubeconfig" + }, + "talos_image_factory_schematic": { + "current": "talos:imageFactory/schematic:Schematic" + }, "talos_machine_bootstrap": { "current": "talos:machine/bootstrap:Bootstrap" }, @@ -45,6 +51,40 @@ "talos_cluster_kubeconfig": { "current": "talos:cluster/getKubeconfig:getKubeconfig" }, + "talos_image_factory_extensions_versions": { + "current": "talos:imageFactory/getExtensionsVersions:getExtensionsVersions", + "fields": { + "extensions_info": { + "maxItemsOne": false + }, + "filters": { + "fields": { + "names": { + "maxItemsOne": false + } + } + } + } + }, + "talos_image_factory_overlays_versions": { + "current": "talos:imageFactory/getOverlaysVersions:getOverlaysVersions", + "fields": { + "overlays_info": { + "maxItemsOne": false + } + } + }, + "talos_image_factory_urls": { + "current": "talos:imageFactory/getUrls:getUrls" + }, + "talos_image_factory_versions": { + "current": "talos:imageFactory/getVersions:getVersions", + "fields": { + "talos_versions": { + "maxItemsOne": false + } + } + }, "talos_machine_configuration": { "current": "talos:machine/getConfiguration:getConfiguration", "fields": { diff --git a/provider/cmd/pulumi-resource-talos/schema.json b/provider/cmd/pulumi-resource-talos/schema.json index 01e2db07..b97d21aa 100644 --- a/provider/cmd/pulumi-resource-talos/schema.json +++ b/provider/cmd/pulumi-resource-talos/schema.json @@ -59,7 +59,14 @@ } } }, - "config": {}, + "config": { + "variables": { + "imageFactoryUrl": { + "type": "string", + "description": "The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.\n" + } + } + }, "types": { "talos:client/getConfigurationClientConfiguration:getConfigurationClientConfiguration": { "properties": { @@ -84,6 +91,74 @@ "clientKey" ] }, + "talos:cluster/KubeconfigClientConfiguration:KubeconfigClientConfiguration": { + "properties": { + "caCertificate": { + "type": "string", + "description": "The client CA certificate\n" + }, + "clientCertificate": { + "type": "string", + "description": "The client certificate\n" + }, + "clientKey": { + "type": "string", + "description": "The client key\n", + "secret": true + } + }, + "type": "object", + "required": [ + "caCertificate", + "clientCertificate", + "clientKey" + ] + }, + "talos:cluster/KubeconfigKubernetesClientConfiguration:KubeconfigKubernetesClientConfiguration": { + "properties": { + "caCertificate": { + "type": "string", + "description": "The kubernetes CA certificate\n" + }, + "clientCertificate": { + "type": "string", + "description": "The kubernetes client certificate\n" + }, + "clientKey": { + "type": "string", + "description": "The kubernetes client key\n", + "secret": true + }, + "host": { + "type": "string", + "description": "The kubernetes host\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "caCertificate", + "clientCertificate", + "clientKey", + "host" + ] + } + } + }, + "talos:cluster/KubeconfigTimeouts:KubeconfigTimeouts": { + "properties": { + "create": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + }, + "update": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + } + }, + "type": "object" + }, "talos:cluster/getHealthClientConfiguration:getHealthClientConfiguration": { "properties": { "caCertificate": { @@ -181,6 +256,163 @@ }, "type": "object" }, + "talos:imageFactory/getExtensionsVersionsExtensionsInfo:getExtensionsVersionsExtensionsInfo": { + "properties": { + "author": { + "type": "string" + }, + "description": { + "type": "string" + }, + "digest": { + "type": "string" + }, + "name": { + "type": "string" + }, + "ref": { + "type": "string" + } + }, + "type": "object", + "required": [ + "author", + "description", + "digest", + "name", + "ref" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "talos:imageFactory/getExtensionsVersionsFilters:getExtensionsVersionsFilters": { + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The name of the extension to filter by.\n" + } + }, + "type": "object" + }, + "talos:imageFactory/getOverlaysVersionsFilters:getOverlaysVersionsFilters": { + "properties": { + "name": { + "type": "string", + "description": "The name of the overlay to filter by.\n" + } + }, + "type": "object" + }, + "talos:imageFactory/getOverlaysVersionsOverlaysInfo:getOverlaysVersionsOverlaysInfo": { + "properties": { + "digest": { + "type": "string" + }, + "image": { + "type": "string" + }, + "name": { + "type": "string" + }, + "ref": { + "type": "string" + } + }, + "type": "object", + "required": [ + "digest", + "image", + "name", + "ref" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "talos:imageFactory/getUrlsUrls:getUrlsUrls": { + "properties": { + "diskImage": { + "type": "string", + "description": "The URL for the disk image.\n" + }, + "diskImageSecureboot": { + "type": "string", + "description": "The URL for the disk image with secure boot.\n" + }, + "initramfs": { + "type": "string", + "description": "The URL for the initramfs image.\n" + }, + "installer": { + "type": "string", + "description": "The URL for the installer image.\n" + }, + "installerSecureboot": { + "type": "string", + "description": "The URL for the installer image with secure boot.\n" + }, + "iso": { + "type": "string", + "description": "The URL for the ISO image.\n" + }, + "isoSecureboot": { + "type": "string", + "description": "The URL for the ISO image with secure boot.\n" + }, + "kernel": { + "type": "string", + "description": "The URL for the kernel image.\n" + }, + "kernelCommandLine": { + "type": "string", + "description": "The URL for the kernel command line.\n" + }, + "pxe": { + "type": "string", + "description": "The URL for the PXE image.\n" + }, + "uki": { + "type": "string", + "description": "The URL for the UKI image.\n" + } + }, + "type": "object", + "required": [ + "diskImage", + "diskImageSecureboot", + "initramfs", + "installer", + "installerSecureboot", + "iso", + "isoSecureboot", + "kernel", + "kernelCommandLine", + "pxe", + "uki" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "talos:imageFactory/getVersionsFilters:getVersionsFilters": { + "properties": { + "stableVersionsOnly": { + "type": "boolean", + "description": "If set to true, only stable versions will be returned. If set to false, all versions will be returned.\n" + } + }, + "type": "object" + }, "talos:machine/BootstrapClientConfiguration:BootstrapClientConfiguration": { "properties": { "caCertificate": { @@ -236,6 +468,32 @@ "clientKey" ] }, + "talos:machine/ConfigurationApplyOnDestroy:ConfigurationApplyOnDestroy": { + "properties": { + "graceful": { + "type": "boolean", + "description": "Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true\n" + }, + "reboot": { + "type": "boolean", + "description": "Reboot indicates whether node should reboot or halt after resetting. Default false\n" + }, + "reset": { + "type": "boolean", + "description": "Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "graceful", + "reboot", + "reset" + ] + } + } + }, "talos:machine/SecretsClientConfiguration:SecretsClientConfiguration": { "properties": { "caCertificate": { @@ -508,6 +766,10 @@ "type": "string", "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" }, + "delete": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.\n" + }, "update": { "type": "string", "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" @@ -1012,9 +1274,148 @@ } }, "provider": { - "description": "The provider type for the talos package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n" + "description": "The provider type for the talos package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n", + "properties": { + "imageFactoryUrl": { + "type": "string", + "description": "The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.\n" + } + }, + "inputProperties": { + "imageFactoryUrl": { + "type": "string", + "description": "The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.\n" + } + } }, "resources": { + "talos:cluster/kubeconfig:Kubeconfig": { + "description": "Retrieves the kubeconfig for a Talos cluster\n\n", + "properties": { + "clientConfiguration": { + "$ref": "#/types/talos:cluster/KubeconfigClientConfiguration:KubeconfigClientConfiguration", + "description": "The client configuration data\n" + }, + "endpoint": { + "type": "string", + "description": "endpoint to use for the talosclient. If not set, the node value will be used\n" + }, + "kubeconfigRaw": { + "type": "string", + "description": "The raw kubeconfig\n", + "secret": true + }, + "kubernetesClientConfiguration": { + "$ref": "#/types/talos:cluster/KubeconfigKubernetesClientConfiguration:KubeconfigKubernetesClientConfiguration", + "description": "The kubernetes client configuration\n" + }, + "node": { + "type": "string", + "description": "controlplane node to retrieve the kubeconfig from\n" + }, + "timeouts": { + "$ref": "#/types/talos:cluster/KubeconfigTimeouts:KubeconfigTimeouts" + } + }, + "required": [ + "clientConfiguration", + "endpoint", + "kubeconfigRaw", + "kubernetesClientConfiguration", + "node" + ], + "inputProperties": { + "clientConfiguration": { + "$ref": "#/types/talos:cluster/KubeconfigClientConfiguration:KubeconfigClientConfiguration", + "description": "The client configuration data\n" + }, + "endpoint": { + "type": "string", + "description": "endpoint to use for the talosclient. If not set, the node value will be used\n" + }, + "node": { + "type": "string", + "description": "controlplane node to retrieve the kubeconfig from\n" + }, + "timeouts": { + "$ref": "#/types/talos:cluster/KubeconfigTimeouts:KubeconfigTimeouts" + } + }, + "requiredInputs": [ + "clientConfiguration", + "node" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Kubeconfig resources.\n", + "properties": { + "clientConfiguration": { + "$ref": "#/types/talos:cluster/KubeconfigClientConfiguration:KubeconfigClientConfiguration", + "description": "The client configuration data\n" + }, + "endpoint": { + "type": "string", + "description": "endpoint to use for the talosclient. If not set, the node value will be used\n" + }, + "kubeconfigRaw": { + "type": "string", + "description": "The raw kubeconfig\n", + "secret": true + }, + "kubernetesClientConfiguration": { + "$ref": "#/types/talos:cluster/KubeconfigKubernetesClientConfiguration:KubeconfigKubernetesClientConfiguration", + "description": "The kubernetes client configuration\n" + }, + "node": { + "type": "string", + "description": "controlplane node to retrieve the kubeconfig from\n" + }, + "timeouts": { + "$ref": "#/types/talos:cluster/KubeconfigTimeouts:KubeconfigTimeouts" + } + }, + "type": "object" + } + }, + "talos:imageFactory/schematic:Schematic": { + "description": "The image factory schematic resource allows you to create a schematic for a Talos image.\n\n", + "properties": { + "schematic": { + "type": "string", + "description": "The schematic yaml respresentation to generate the image.\n", + "language": { + "csharp": { + "name": "SchematicData" + } + } + } + }, + "inputProperties": { + "schematic": { + "type": "string", + "description": "The schematic yaml respresentation to generate the image.\n", + "language": { + "csharp": { + "name": "SchematicData" + } + } + } + }, + "stateInputs": { + "description": "Input properties used for looking up and filtering Schematic resources.\n", + "properties": { + "schematic": { + "type": "string", + "description": "The schematic yaml respresentation to generate the image.\n", + "language": { + "csharp": { + "name": "SchematicData" + } + } + } + }, + "type": "object" + } + }, "talos:machine/bootstrap:Bootstrap": { "description": "The machine bootstrap resource allows you to bootstrap a Talos node.\n\n## Import\n\nterraform\n\nmachine bootstrap can be imported to let terraform know that the machine is already bootstrapped\n\n```sh\n$ pulumi import talos:machine/bootstrap:Bootstrap this \u003cany id\u003e\n```\n\n", "properties": { @@ -1118,6 +1519,10 @@ "type": "string", "description": "The name of the node to bootstrap\n" }, + "onDestroy": { + "$ref": "#/types/talos:machine/ConfigurationApplyOnDestroy:ConfigurationApplyOnDestroy", + "description": "Actions to be taken on destroy, if *reset* is not set this is a no-op.\n" + }, "timeouts": { "$ref": "#/types/talos:machine/Timeout:Timeout" } @@ -1159,6 +1564,10 @@ "type": "string", "description": "The name of the node to bootstrap\n" }, + "onDestroy": { + "$ref": "#/types/talos:machine/ConfigurationApplyOnDestroy:ConfigurationApplyOnDestroy", + "description": "Actions to be taken on destroy, if *reset* is not set this is a no-op.\n" + }, "timeouts": { "$ref": "#/types/talos:machine/Timeout:Timeout" } @@ -1204,6 +1613,10 @@ "type": "string", "description": "The name of the node to bootstrap\n" }, + "onDestroy": { + "$ref": "#/types/talos:machine/ConfigurationApplyOnDestroy:ConfigurationApplyOnDestroy", + "description": "Actions to be taken on destroy, if *reset* is not set this is a no-op.\n" + }, "timeouts": { "$ref": "#/types/talos:machine/Timeout:Timeout" } @@ -1338,7 +1751,7 @@ } }, "talos:cluster/getHealth:getHealth": { - "description": "Checks the health of a Talos cluster\n", + "description": "Waits for the Talos cluster to be healthy. Can be used as a dependency before running other operations on the cluster.\n", "inputs": { "description": "A collection of arguments for invoking getHealth.\n", "properties": { @@ -1360,6 +1773,10 @@ }, "description": "endpoints to use for the health check client. Use at least one control plane endpoint.\n" }, + "skipKubernetesChecks": { + "type": "boolean", + "description": "Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false.\n" + }, "timeouts": { "$ref": "#/types/talos:cluster/getHealthTimeouts:getHealthTimeouts" }, @@ -1403,6 +1820,10 @@ "description": "The ID of this resource.\n", "type": "string" }, + "skipKubernetesChecks": { + "description": "Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false.\n", + "type": "boolean" + }, "timeouts": { "$ref": "#/types/talos:cluster/getHealthTimeouts:getHealthTimeouts" }, @@ -1503,6 +1924,206 @@ "type": "object" } }, + "talos:imageFactory/getExtensionsVersions:getExtensionsVersions": { + "description": "The image factory extensions versions data source provides a list of available extensions for a specific talos version from the image factory.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as talos from \"@pulumi/talos\";\n\nconst this = talos.imageFactory.getExtensionsVersions({\n talosVersion: \"v1.7.5\",\n filters: {\n names: [\n \"amdgpu\",\n \"tailscale\",\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_talos as talos\n\nthis = talos.imageFactory.get_extensions_versions(talos_version=\"v1.7.5\",\n filters={\n \"names\": [\n \"amdgpu\",\n \"tailscale\",\n ],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Talos = Pulumi.Talos;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @this = Talos.ImageFactory.GetExtensionsVersions.Invoke(new()\n {\n TalosVersion = \"v1.7.5\",\n Filters = new Talos.ImageFactory.Inputs.GetExtensionsVersionsFiltersInputArgs\n {\n Names = new[]\n {\n \"amdgpu\",\n \"tailscale\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-talos/sdk/go/talos/imageFactory\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := imageFactory.GetExtensionsVersions(ctx, \u0026imagefactory.GetExtensionsVersionsArgs{\n\t\t\tTalosVersion: \"v1.7.5\",\n\t\t\tFilters: imagefactory.GetExtensionsVersionsFilters{\n\t\t\t\tNames: []string{\n\t\t\t\t\t\"amdgpu\",\n\t\t\t\t\t\"tailscale\",\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.talos.imageFactory.ImageFactoryFunctions;\nimport com.pulumi.talos.imageFactory.inputs.GetExtensionsVersionsArgs;\nimport com.pulumi.talos.imageFactory.inputs.GetExtensionsVersionsFiltersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var this = ImageFactoryFunctions.getExtensionsVersions(GetExtensionsVersionsArgs.builder()\n .talosVersion(\"v1.7.5\")\n .filters(GetExtensionsVersionsFiltersArgs.builder()\n .names( \n \"amdgpu\",\n \"tailscale\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n this:\n fn::invoke:\n Function: talos:imageFactory:getExtensionsVersions\n Arguments:\n talosVersion: v1.7.5\n filters:\n names:\n - amdgpu\n - tailscale\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getExtensionsVersions.\n", + "properties": { + "filters": { + "$ref": "#/types/talos:imageFactory/getExtensionsVersionsFilters:getExtensionsVersionsFilters", + "description": "The filter to apply to the extensions list.\n" + }, + "talosVersion": { + "type": "string", + "description": "The talos version to get extensions for.\n" + } + }, + "type": "object", + "required": [ + "talosVersion" + ] + }, + "outputs": { + "description": "A collection of values returned by getExtensionsVersions.\n", + "properties": { + "extensionsInfos": { + "description": "The list of available extensions for the specified talos version.\n", + "items": { + "$ref": "#/types/talos:imageFactory/getExtensionsVersionsExtensionsInfo:getExtensionsVersionsExtensionsInfo" + }, + "type": "array" + }, + "filters": { + "$ref": "#/types/talos:imageFactory/getExtensionsVersionsFilters:getExtensionsVersionsFilters", + "description": "The filter to apply to the extensions list.\n" + }, + "id": { + "description": "The ID of this resource.\n", + "type": "string" + }, + "talosVersion": { + "description": "The talos version to get extensions for.\n", + "type": "string" + } + }, + "required": [ + "extensionsInfos", + "id", + "talosVersion" + ], + "type": "object" + } + }, + "talos:imageFactory/getOverlaysVersions:getOverlaysVersions": { + "description": "The image factory overlays versions data source provides a list of available overlays for a specific talos version from the image factory.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as talos from \"@pulumi/talos\";\n\nconst this = talos.imageFactory.getOverlaysVersions({\n talosVersion: \"v1.7.5\",\n filters: {\n name: \"rock4cplus\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_talos as talos\n\nthis = talos.imageFactory.get_overlays_versions(talos_version=\"v1.7.5\",\n filters={\n \"name\": \"rock4cplus\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Talos = Pulumi.Talos;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @this = Talos.ImageFactory.GetOverlaysVersions.Invoke(new()\n {\n TalosVersion = \"v1.7.5\",\n Filters = new Talos.ImageFactory.Inputs.GetOverlaysVersionsFiltersInputArgs\n {\n Name = \"rock4cplus\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-talos/sdk/go/talos/imageFactory\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := imageFactory.GetOverlaysVersions(ctx, \u0026imagefactory.GetOverlaysVersionsArgs{\n\t\t\tTalosVersion: \"v1.7.5\",\n\t\t\tFilters: imagefactory.GetOverlaysVersionsFilters{\n\t\t\t\tName: pulumi.StringRef(\"rock4cplus\"),\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.talos.imageFactory.ImageFactoryFunctions;\nimport com.pulumi.talos.imageFactory.inputs.GetOverlaysVersionsArgs;\nimport com.pulumi.talos.imageFactory.inputs.GetOverlaysVersionsFiltersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var this = ImageFactoryFunctions.getOverlaysVersions(GetOverlaysVersionsArgs.builder()\n .talosVersion(\"v1.7.5\")\n .filters(GetOverlaysVersionsFiltersArgs.builder()\n .name(\"rock4cplus\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n this:\n fn::invoke:\n Function: talos:imageFactory:getOverlaysVersions\n Arguments:\n talosVersion: v1.7.5\n filters:\n name: rock4cplus\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getOverlaysVersions.\n", + "properties": { + "filters": { + "$ref": "#/types/talos:imageFactory/getOverlaysVersionsFilters:getOverlaysVersionsFilters", + "description": "The filter to apply to the overlays list.\n" + }, + "talosVersion": { + "type": "string", + "description": "The talos version to get overlays for.\n" + } + }, + "type": "object", + "required": [ + "talosVersion" + ] + }, + "outputs": { + "description": "A collection of values returned by getOverlaysVersions.\n", + "properties": { + "filters": { + "$ref": "#/types/talos:imageFactory/getOverlaysVersionsFilters:getOverlaysVersionsFilters", + "description": "The filter to apply to the overlays list.\n" + }, + "id": { + "description": "The ID of this resource.\n", + "type": "string" + }, + "overlaysInfos": { + "description": "The list of available extensions for the specified talos version.\n", + "items": { + "$ref": "#/types/talos:imageFactory/getOverlaysVersionsOverlaysInfo:getOverlaysVersionsOverlaysInfo" + }, + "type": "array" + }, + "talosVersion": { + "description": "The talos version to get overlays for.\n", + "type": "string" + } + }, + "required": [ + "id", + "overlaysInfos", + "talosVersion" + ], + "type": "object" + } + }, + "talos:imageFactory/getUrls:getUrls": { + "description": "Generates URLs for different assets supported by the Talos image factory.\n\n", + "inputs": { + "description": "A collection of arguments for invoking getUrls.\n", + "properties": { + "architecture": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "sbc": { + "type": "string" + }, + "schematicId": { + "type": "string" + }, + "talosVersion": { + "type": "string" + } + }, + "type": "object", + "required": [ + "schematicId", + "talosVersion" + ] + }, + "outputs": { + "description": "A collection of values returned by getUrls.\n", + "properties": { + "architecture": { + "type": "string" + }, + "id": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "sbc": { + "type": "string" + }, + "schematicId": { + "type": "string" + }, + "talosVersion": { + "type": "string" + }, + "urls": { + "$ref": "#/types/talos:imageFactory/getUrlsUrls:getUrlsUrls" + } + }, + "required": [ + "architecture", + "id", + "schematicId", + "talosVersion", + "urls" + ], + "type": "object" + } + }, + "talos:imageFactory/getVersions:getVersions": { + "description": "The image factory versions data source provides a list of available talos versions from the image factory.\n\n", + "inputs": { + "description": "A collection of arguments for invoking getVersions.\n", + "properties": { + "filters": { + "$ref": "#/types/talos:imageFactory/getVersionsFilters:getVersionsFilters", + "description": "The filter to apply to the overlays list.\n" + } + }, + "type": "object" + }, + "outputs": { + "description": "A collection of values returned by getVersions.\n", + "properties": { + "filters": { + "$ref": "#/types/talos:imageFactory/getVersionsFilters:getVersionsFilters", + "description": "The filter to apply to the overlays list.\n" + }, + "id": { + "description": "The ID of this resource.\n", + "type": "string" + }, + "talosVersions": { + "description": "The list of available talos versions.\n", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "id", + "talosVersions" + ], + "type": "object" + } + }, "talos:machine/getConfiguration:getConfiguration": { "description": "Generate a machine configuration for a node type\n\n\u003e **Note:** It is recommended to set the optional `talos_version` attribute. Otherwise when using a new version of the provider with a new major version of the Talos SDK, new machineconfig features will be enabled by default which could cause unexpected behavior.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as talos from \"@pulumi/talos\";\nimport * as talos from \"@pulumiverse/talos\";\n\nconst thisSecrets = new talos.machine.Secrets(\"this\", {});\nconst this = talos.machine.getConfigurationOutput({\n clusterName: \"example-cluster\",\n machineType: \"controlplane\",\n clusterEndpoint: \"https://cluster.local:6443\",\n machineSecrets: thisSecrets.machineSecrets,\n});\n```\n```python\nimport pulumi\nimport pulumi_talos as talos\nimport pulumiverse_talos as talos\n\nthis_secrets = talos.machine.Secrets(\"this\")\nthis = talos.machine.get_configuration_output(cluster_name=\"example-cluster\",\n machine_type=\"controlplane\",\n cluster_endpoint=\"https://cluster.local:6443\",\n machine_secrets=this_secrets.machine_secrets)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Talos = Pulumi.Talos;\nusing Talos = Pulumiverse.Talos;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var thisSecrets = new Talos.Machine.Secrets(\"this\");\n\n var @this = Talos.Machine.GetConfiguration.Invoke(new()\n {\n ClusterName = \"example-cluster\",\n MachineType = \"controlplane\",\n ClusterEndpoint = \"https://cluster.local:6443\",\n MachineSecrets = thisSecrets.MachineSecrets,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-talos/sdk/go/talos/machine\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisSecrets, err := machine.NewSecrets(ctx, \"this\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = machine.GetConfigurationOutput(ctx, machine.GetConfigurationOutputArgs{\n\t\t\tClusterName: pulumi.String(\"example-cluster\"),\n\t\t\tMachineType: pulumi.String(\"controlplane\"),\n\t\t\tClusterEndpoint: pulumi.String(\"https://cluster.local:6443\"),\n\t\t\tMachineSecrets: thisSecrets.MachineSecrets,\n\t\t}, nil)\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.talos.machine.Secrets;\nimport com.pulumi.talos.machine.MachineFunctions;\nimport com.pulumi.talos.machine.inputs.GetConfigurationArgs;\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 thisSecrets = new Secrets(\"thisSecrets\");\n\n final var this = MachineFunctions.getConfiguration(GetConfigurationArgs.builder()\n .clusterName(\"example-cluster\")\n .machineType(\"controlplane\")\n .clusterEndpoint(\"https://cluster.local:6443\")\n .machineSecrets(thisSecrets.machineSecrets())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n thisSecrets:\n type: talos:machine:Secrets\n name: this\nvariables:\n this:\n fn::invoke:\n Function: talos:machine:getConfiguration\n Arguments:\n clusterName: example-cluster\n machineType: controlplane\n clusterEndpoint: https://cluster.local:6443\n machineSecrets: ${thisSecrets.machineSecrets}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { @@ -1525,11 +2146,11 @@ }, "docs": { "type": "boolean", - "description": "Whether to generate documentation for the generated configuration\n" + "description": "Whether to generate documentation for the generated configuration. Defaults to false\n" }, "examples": { "type": "boolean", - "description": "Whether to generate examples for the generated configuration\n" + "description": "Whether to generate examples for the generated configuration. Defaults to false\n" }, "kubernetesVersion": { "type": "string", @@ -1575,11 +2196,11 @@ "type": "array" }, "docs": { - "description": "Whether to generate documentation for the generated configuration\n", + "description": "Whether to generate documentation for the generated configuration. Defaults to false\n", "type": "boolean" }, "examples": { - "description": "Whether to generate examples for the generated configuration\n", + "description": "Whether to generate examples for the generated configuration. Defaults to false\n", "type": "boolean" }, "id": { diff --git a/provider/go.mod b/provider/go.mod index 0c23547a..d5f3a7e6 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -1,6 +1,6 @@ module github.com/pulumiverse/pulumi-talos/provider -go 1.22.2 +go 1.23.1 toolchain go1.23.2 @@ -10,32 +10,36 @@ require ( github.com/pulumi/pulumi-terraform-bridge/pf v0.47.0 github.com/pulumi/pulumi-terraform-bridge/v3 v3.94.0 github.com/pulumi/pulumi/pkg/v3 v3.137.0 - github.com/siderolabs/terraform-provider-talos v0.5.0 + github.com/siderolabs/terraform-provider-talos v0.6.0 ) require ( - cloud.google.com/go v0.112.1 // indirect + cloud.google.com/go v0.115.0 // indirect + cloud.google.com/go/auth v0.7.3 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.3 // indirect cloud.google.com/go/compute/metadata v0.5.0 // indirect - cloud.google.com/go/iam v1.1.6 // indirect - cloud.google.com/go/storage v1.39.1 // indirect + cloud.google.com/go/iam v1.1.12 // indirect + cloud.google.com/go/storage v1.41.0 // indirect dario.cat/mergo v1.0.0 // 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.2 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/ProtonMail/go-crypto v1.1.0-alpha.5.0.20240827111422-b5837fa4476e // indirect github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f // indirect github.com/ProtonMail/gopenpgp/v2 v2.7.5 // indirect - github.com/adrg/xdg v0.4.0 // indirect + github.com/adrg/xdg v0.5.0 // indirect github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect github.com/agext/levenshtein v1.2.3 // indirect + github.com/antlr4-go/antlr/v4 v4.13.0 // indirect github.com/apparentlymart/go-cidr v1.1.0 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/armon/go-radix v1.0.0 // indirect + github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/atotto/clipboard v0.1.4 // indirect - github.com/aws/aws-sdk-go v1.50.36 // indirect + github.com/aws/aws-sdk-go v1.55.5 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/bgentry/speakeasy v0.1.0 // indirect @@ -45,41 +49,69 @@ require ( github.com/charmbracelet/bubbletea v0.25.0 // indirect github.com/charmbracelet/lipgloss v0.7.1 // indirect github.com/cheggaaa/pb v1.0.29 // indirect - github.com/cloudflare/circl v1.3.7 // indirect + github.com/cloudflare/circl v1.3.9 // indirect github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect - github.com/containerd/go-cni v1.1.9 // indirect - github.com/containernetworking/cni v1.1.2 // indirect - github.com/cosi-project/runtime v0.4.1 // indirect + github.com/containerd/go-cni v1.1.10 // indirect + github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect + github.com/containernetworking/cni v1.2.3 // indirect + github.com/cosi-project/runtime v0.5.5 // indirect + github.com/cyberphone/json-canonicalization v0.0.0-20231011164504-785e29786b46 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/deckarep/golang-set/v2 v2.5.0 // indirect + github.com/digitorus/pkcs7 v0.0.0-20230818184609-3a137a874352 // indirect + github.com/digitorus/timestamp v0.0.0-20231217203849-220c5c2851b7 // indirect + github.com/distribution/reference v0.6.0 // indirect github.com/djherbis/times v1.5.0 // indirect + github.com/docker/cli v27.1.1+incompatible // indirect + github.com/docker/distribution v2.8.3+incompatible // indirect + github.com/docker/docker-credential-helpers v0.8.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/edsrzf/mmap-go v1.1.0 // indirect + github.com/emicklei/go-restful/v3 v3.12.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/ettle/strcase v0.1.1 // indirect github.com/evanphx/json-patch v5.9.0+incompatible // indirect - github.com/fatih/color v1.16.0 // indirect + github.com/fatih/color v1.17.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/gertd/go-pluralize v0.2.1 // indirect github.com/ghodss/yaml v1.0.0 // indirect + github.com/go-chi/chi v4.1.2+incompatible // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-git/go-git/v5 v5.12.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/go-jose/go-jose/v4 v4.0.2 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-openapi/analysis v0.23.0 // indirect + github.com/go-openapi/errors v0.22.0 // indirect + github.com/go-openapi/jsonpointer v0.21.0 // indirect + github.com/go-openapi/jsonreference v0.21.0 // indirect + github.com/go-openapi/loads v0.22.0 // indirect + github.com/go-openapi/runtime v0.28.0 // indirect + github.com/go-openapi/spec v0.21.0 // indirect + github.com/go-openapi/strfmt v0.23.0 // indirect + github.com/go-openapi/swag v0.23.0 // indirect + github.com/go-openapi/validate v0.24.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/glog v1.2.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect + github.com/golang/snappy v0.0.4 // indirect + github.com/google/cel-go v0.21.0 // indirect + github.com/google/certificate-transparency-go v1.2.1 // indirect + github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 // indirect github.com/google/go-cmp v0.6.0 // indirect + github.com/google/go-containerregistry v0.20.2 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/s2a-go v0.1.7 // indirect + github.com/google/s2a-go v0.1.8 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.2 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1 // indirect + github.com/googleapis/gax-go/v2 v2.13.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect @@ -90,31 +122,37 @@ require ( github.com/hashicorp/go-plugin v1.6.2 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect - github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hashicorp/hcl/v2 v2.20.0 // indirect + github.com/hashicorp/go-version v1.7.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect + github.com/hashicorp/hcl/v2 v2.21.0 // indirect github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 // indirect github.com/hashicorp/terraform-plugin-framework v1.13.0 // indirect github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 // indirect - github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 // indirect + github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 // indirect github.com/hashicorp/terraform-plugin-go v0.25.0 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect - github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0 // indirect + github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0 // indirect github.com/hashicorp/terraform-registry-address v0.2.3 // indirect github.com/hashicorp/terraform-svchost v0.1.1 // indirect github.com/hashicorp/yamux v0.1.1 // indirect github.com/huandu/xstrings v1.3.3 // 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/in-toto/in-toto-golang v0.9.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect + github.com/jedisct1/go-minisign v0.0.0-20230811132847-661be99b8267 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect + github.com/josharian/intern v1.0.0 // indirect github.com/josharian/native v1.1.0 // indirect - github.com/jsimonetti/rtnetlink v1.4.1 // indirect + github.com/jsimonetti/rtnetlink/v2 v2.0.2 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect - github.com/klauspost/compress v1.17.7 // indirect + github.com/klauspost/compress v1.17.9 // indirect + github.com/letsencrypt/boulder v0.0.0-20240620165639-de9c06129bec // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mailru/easyjson v0.7.7 // 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 @@ -138,11 +176,17 @@ require ( github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/reflow v0.3.0 // indirect github.com/muesli/termenv v0.15.2 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/natefinch/atomic v1.0.1 // indirect + github.com/nozzle/throttler v0.0.0-20180817012639-2ea982251481 // indirect github.com/oklog/run v1.1.0 // indirect + github.com/oklog/ulid v1.3.1 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/opencontainers/runtime-spec v1.2.0 // indirect github.com/opentracing/basictracer-go v1.1.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect + github.com/pelletier/go-toml/v2 v2.2.3 // indirect github.com/pgavlin/fx v0.1.6 // indirect github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect @@ -158,75 +202,107 @@ require ( github.com/pulumi/pulumi-yaml v1.11.1 // indirect github.com/pulumi/pulumi/sdk/v3 v3.137.0 // indirect github.com/pulumi/schema-tools v0.1.2 // indirect - github.com/rivo/uniseg v0.4.4 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect + github.com/sagikazarmark/locafero v0.4.0 // indirect + github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect + github.com/sassoftware/relic v7.2.1+incompatible // indirect + github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect github.com/segmentio/asm v1.1.3 // indirect github.com/segmentio/encoding v0.3.5 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect + github.com/shibumi/go-pathspec v1.3.0 // indirect github.com/shopspring/decimal v1.3.1 // indirect github.com/siderolabs/crypto v0.4.4 // indirect - github.com/siderolabs/gen v0.4.8 // indirect - github.com/siderolabs/go-api-signature v0.3.2 // indirect + github.com/siderolabs/gen v0.5.0 // indirect + github.com/siderolabs/go-api-signature v0.3.6 // indirect github.com/siderolabs/go-blockdevice v0.4.7 // indirect + github.com/siderolabs/go-blockdevice/v2 v2.0.2 // indirect + github.com/siderolabs/go-circular v0.2.0 // indirect + github.com/siderolabs/go-kubernetes v0.2.12 // indirect github.com/siderolabs/go-pointer v1.0.0 // indirect + github.com/siderolabs/go-procfs v0.1.2 // indirect + github.com/siderolabs/go-retry v0.3.3 // indirect + github.com/siderolabs/image-factory v0.5.0 // indirect github.com/siderolabs/net v0.4.0 // indirect github.com/siderolabs/protoenc v0.2.1 // indirect - github.com/siderolabs/talos/pkg/machinery v1.7.0 // indirect + github.com/siderolabs/talos v1.8.0 // indirect + github.com/siderolabs/talos/pkg/machinery v1.8.0 // indirect + github.com/sigstore/cosign/v2 v2.4.0 // indirect + github.com/sigstore/protobuf-specs v0.3.2 // indirect + github.com/sigstore/rekor v1.3.6 // indirect + github.com/sigstore/sigstore v1.8.8 // indirect + github.com/sigstore/timestamp-authority v1.2.2 // indirect + 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/cobra v1.8.0 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect + github.com/spf13/afero v1.11.0 // indirect + github.com/spf13/cast v1.6.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect + github.com/spf13/viper v1.19.0 // indirect + github.com/stoewer/go-strcase v1.3.0 // indirect + github.com/subosito/gotenv v1.6.0 // indirect + github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/teekennedy/goldmark-markdown v0.3.0 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect + github.com/theupdateframework/go-tuf v0.7.0 // indirect + github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399 // indirect + github.com/transparency-dev/merkle v0.0.2 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect - github.com/ulikunitz/xz v0.5.10 // indirect + github.com/ulikunitz/xz v0.5.12 // indirect + github.com/vbatts/tar-split v0.11.5 // indirect github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect + github.com/x448/float16 v0.8.4 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/yuin/goldmark v1.7.4 // indirect - github.com/zclconf/go-cty v1.14.4 // indirect + github.com/zclconf/go-cty v1.15.0 // indirect + go.mongodb.org/mongo-driver v1.14.0 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect - 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.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 // indirect + go.opentelemetry.io/otel v1.28.0 // indirect + go.opentelemetry.io/otel/metric v1.28.0 // indirect + go.opentelemetry.io/otel/trace v1.28.0 // indirect go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/crypto v0.26.0 // indirect + golang.org/x/crypto v0.27.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.28.0 // indirect - golang.org/x/oauth2 v0.22.0 // indirect + golang.org/x/mod v0.21.0 // indirect + golang.org/x/net v0.29.0 // indirect + golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.24.0 // indirect - golang.org/x/term v0.23.0 // indirect - golang.org/x/text v0.17.0 // indirect - golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.22.0 // indirect - google.golang.org/api v0.169.0 // indirect - google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect + golang.org/x/sys v0.25.0 // indirect + golang.org/x/term v0.24.0 // indirect + golang.org/x/text v0.18.0 // indirect + golang.org/x/time v0.6.0 // indirect + golang.org/x/tools v0.24.0 // indirect + google.golang.org/api v0.190.0 // indirect + google.golang.org/genproto v0.0.0-20240730163845-b1a4ccb954bf // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect google.golang.org/grpc v1.67.1 // indirect google.golang.org/protobuf v1.35.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/ini.v1 v1.67.0 // indirect 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/apimachinery v0.29.3 // indirect - k8s.io/client-go v0.29.3 // indirect - k8s.io/klog/v2 v2.110.1 // indirect - k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect + k8s.io/api v0.31.1 // indirect + k8s.io/apimachinery v0.31.1 // indirect + k8s.io/client-go v0.31.1 // indirect + k8s.io/klog/v2 v2.130.1 // indirect + k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f // indirect + k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect lukechampine.com/frand v1.4.2 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // 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 eafb4b1f..d6945d73 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -3,7 +3,6 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= @@ -16,7 +15,6 @@ cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOY cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= @@ -32,8 +30,8 @@ cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w9 cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= -cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= +cloud.google.com/go v0.115.0 h1:CnFSK6Xo3lDYRoBKEcAtia6VSC837/ZkJuRduSFnr14= +cloud.google.com/go v0.115.0/go.mod h1:8jIM5vVgoAEoiVxQ/O4BFTfHqulPZgs/ufEzMcFMdWU= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= @@ -48,6 +46,10 @@ cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjby cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= +cloud.google.com/go/auth v0.7.3 h1:98Vr+5jMaCZ5NZk6e/uBgf60phTk/XN84r8QEWB9yjY= +cloud.google.com/go/auth v0.7.3/go.mod h1:HJtWUx1P5eqjy/f6Iq5KeytNpbAcGolPhOgyop2LlzA= +cloud.google.com/go/auth/oauth2adapt v0.2.3 h1:MlxF+Pd3OmSudg/b1yZ5lJwoXCEaeedAguodky1PcKI= +cloud.google.com/go/auth/oauth2adapt v0.2.3/go.mod h1:tMQXOfZzFuNuUxOypHlQEXgdfX5cuhwU+ffUuXRJE8I= cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= @@ -109,18 +111,18 @@ cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y97 cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= -cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= -cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= -cloud.google.com/go/kms v1.15.7 h1:7caV9K3yIxvlQPAcaFffhlT7d1qpxjB1wHBtjWa13SM= -cloud.google.com/go/kms v1.15.7/go.mod h1:ub54lbsa6tDkUwnu4W7Yt1aAIFLnspgh0kPGToDukeI= +cloud.google.com/go/iam v1.1.12 h1:JixGLimRrNGcxvJEQ8+clfLxPlbeZA6MuRJ+qJNQ5Xw= +cloud.google.com/go/iam v1.1.12/go.mod h1:9LDX8J7dN5YRyzVHxwQzrQs9opFFqn0Mxs9nAeB+Hhg= +cloud.google.com/go/kms v1.18.4 h1:dYN3OCsQ6wJLLtOnI8DGUwQ5shMusXsWCCC+s09ATsk= +cloud.google.com/go/kms v1.18.4/go.mod h1:SG1bgQ3UWW6/KdPo9uuJnzELXY5YTTMJtDYvajiQ22g= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= -cloud.google.com/go/logging v1.9.0 h1:iEIOXFO9EmSiTjDmfpbRjOxECO7R8C7b8IXUGOj7xZw= -cloud.google.com/go/logging v1.9.0/go.mod h1:1Io0vnZv4onoUnsVUQY3HZ3Igb1nBchky0A0y7BBBhE= -cloud.google.com/go/longrunning v0.5.5 h1:GOE6pZFdSrTb4KAiKnXsJBtlE6mEyaW44oKyMILWnOg= -cloud.google.com/go/longrunning v0.5.5/go.mod h1:WV2LAxD8/rg5Z1cNW6FJ/ZpX4E4VnDnoTk0yawPBB7s= +cloud.google.com/go/logging v1.11.0 h1:v3ktVzXMV7CwHq1MBF65wcqLMA7i+z3YxbUsoK7mOKs= +cloud.google.com/go/logging v1.11.0/go.mod h1:5LDiJC/RxTt+fHc1LAt20R9TKiUTReDg6RuuFOZ67+A= +cloud.google.com/go/longrunning v0.5.11 h1:Havn1kGjz3whCfoD8dxMLP73Ph5w+ODyZB9RUsDxtGk= +cloud.google.com/go/longrunning v0.5.11/go.mod h1:rDn7//lmlfWV1Dx6IB4RatCPenTwwmqXuiP0/RgoEO4= cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= @@ -174,12 +176,11 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.39.1 h1:MvraqHKhogCOTXTlct/9C3K3+Uy2jBmFYb3/Sp6dVtY= -cloud.google.com/go/storage v1.39.1/go.mod h1:xK6xZmxZmo+fyP7+DEF6FhNc24/JAe95OLyOHCXFH1o= +cloud.google.com/go/storage v1.41.0 h1:RusiwatSu6lHeEXe3kglxakAmAbfV+rhtPqA6i8RBx0= +cloud.google.com/go/storage v1.41.0/go.mod h1:J1WCa/Z2FcgdEDuPUY8DxT5I+d9mFKsCepp5vR6Sq80= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= @@ -191,24 +192,56 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= +cuelabs.dev/go/oci/ociregistry v0.0.0-20240404174027-a39bec0462d2 h1:BnG6pr9TTr6CYlrJznYUDj6V7xldD1W+1iXPum0wT/w= +cuelabs.dev/go/oci/ociregistry v0.0.0-20240404174027-a39bec0462d2/go.mod h1:pK23AUVXuNzzTpfMCA06sxZGeVQ/75FdVtW249de9Uo= +cuelang.org/go v0.9.2 h1:pfNiry2PdRBr02G/aKm5k2vhzmqbAOoaB4WurmEbWvs= +cuelang.org/go v0.9.2/go.mod h1:qpAYsLOf7gTM1YdEg6cxh553uZ4q9ZDWlPbtZr9q1Wk= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= 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= -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= +filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= +filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +github.com/AdamKorcz/go-fuzz-headers-1 v0.0.0-20230919221257-8b5d3ce2d11d h1:zjqpY4C7H15HjRPEenkS4SAn3Jy2eRRjkjZbGR30TOg= +github.com/AdamKorcz/go-fuzz-headers-1 v0.0.0-20230919221257-8b5d3ce2d11d/go.mod h1:XNqJ7hv2kY++g8XEHREpi+JqZo3+0l+CH2egBVN4yqM= +github.com/AliyunContainerService/ack-ram-tool/pkg/credentials/alibabacloudsdkgo/helper v0.2.0 h1:8+4G8JaejP8Xa6W46PzJEwisNgBXMvFcz78N6zG/ARw= +github.com/AliyunContainerService/ack-ram-tool/pkg/credentials/alibabacloudsdkgo/helper v0.2.0/go.mod h1:GgeIE+1be8Ivm7Sh4RgwI42aTtC9qrcj+Y9Y6CjJhJs= +github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU= +github.com/Azure/azure-sdk-for-go v68.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 h1:GJHeeA2N7xrG3q30L2UXDyuWRzDM900/65j70wcM4Ww= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0/go.mod h1:l38EPgmsp71HHLq9j7De57JcKOWPyhrsW1Awm1JS6K0= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 h1:tfLQ34V6F7tVSwoTf/4lH5sE0o6eCJuNDTmH09nDpbc= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0/go.mod h1:9kIvujWAA58nmPmWB1m23fyWic1kYZMxD9CxaWn4Qpg= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0 h1:jBQA3cKT4L2rWMpgE7Yt3Hwh2aUj8KXjIGLxjHeYNNo= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0/go.mod h1:4OG6tQ9EOP/MT0NMjDlRzWoVFxfu9rN9B2X+tlSVktg= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 h1:ywEEhmNahHBihViHepv3xPBn1663uRv2t2q/ESv9seY= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0/go.mod h1:iZDifYGJTIgIIkYRNWPENUnqx6bJ2xnSDFI2tjwZNuY= github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 h1:m/sWOGCREuSBqg2htVQTBY8nOZpyajYztF0vUvSZTuM= 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/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.1.0 h1:DRiANoJTiW6obBQe3SqZizkuV1PEgfiiGivmVocDy64= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.1.0/go.mod h1:qLIye2hwb/ZouqhpSD9Zn3SJipvpEnz1Ywl3VUk9Y0s= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0 h1:D3occbWoio4EBLkbkevetNMAVX197GkzbUMtqjGWn80= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0/go.mod h1:bTSOgj05NGRuHHhQwAdPnYr9TOdNmKlZTgGLL6nyAdI= +github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= +github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/autorest v0.11.29 h1:I4+HL/JDvErx2LjyzaVxllw2lRDB5/BT2Bm4g20iqYw= +github.com/Azure/go-autorest/autorest v0.11.29/go.mod h1:ZtEzC4Jy2JDrZLxvWs8LrBWEBycl1hbT1eknI8MtfAs= +github.com/Azure/go-autorest/autorest/adal v0.9.23 h1:Yepx8CvFxwNKpH6ja7RZ+sKX+DWYNldbLiALMC3BTz8= +github.com/Azure/go-autorest/autorest/adal v0.9.23/go.mod h1:5pcMqFkdPhviJdlEy3kC/v1ZLnQl0MH6XA5YCcMhy4c= +github.com/Azure/go-autorest/autorest/azure/auth v0.5.12 h1:wkAZRgT/pn8HhFyzfe9UnqOjJYqlembgCTi72Bm/xKk= +github.com/Azure/go-autorest/autorest/azure/auth v0.5.12/go.mod h1:84w/uV8E37feW2NCJ08uT9VBfjfUHpgLVnG2InYD6cg= +github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 h1:w77/uPk80ZET2F+AfQExZyEWtn+0Rk/uw17m9fv5Ajc= +github.com/Azure/go-autorest/autorest/azure/cli v0.4.6/go.mod h1:piCfgPho7BiIDdEQ1+g4VmKyD5y+p/XtSNqE6Hc4QD0= +github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= +github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= +github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= +github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= +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= @@ -217,35 +250,66 @@ github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy86 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/v3 v3.2.1/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk= github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA= github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM= 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/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/OneOfOne/xxhash v1.2.8 h1:31czK/TI9sNkxIKfaUfGlU47BAxQ0ztGgd9vPyqimf8= +github.com/OneOfOne/xxhash v1.2.8/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q= github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= -github.com/ProtonMail/go-crypto v1.1.0-alpha.2 h1:bkyFVUP+ROOARdgCiJzNQo2V2kiB97LyUpzH9P6Hrlg= -github.com/ProtonMail/go-crypto v1.1.0-alpha.2/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= +github.com/ProtonMail/go-crypto v1.1.0-alpha.5.0.20240827111422-b5837fa4476e h1:O1cSHAcGcbGEO66Qi2AIJeYmXO8iP4L/PNrbdN+RjJA= +github.com/ProtonMail/go-crypto v1.1.0-alpha.5.0.20240827111422-b5837fa4476e/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f h1:tCbYj7/299ekTTXpdwKYF8eBlsYsDVoggDAuAjoK66k= github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f/go.mod h1:gcr0kNtGBqin9zDW9GOHcVntrwnjrK+qdJ06mWYBybw= github.com/ProtonMail/gopenpgp/v2 v2.7.5 h1:STOY3vgES59gNgoOt2w0nyHBjKViB/qSg7NjbQWPJkA= github.com/ProtonMail/gopenpgp/v2 v2.7.5/go.mod h1:IhkNEDaxec6NyzSI0PlxapinnwPVIESk8/76da3Ct3g= -github.com/adrg/xdg v0.4.0 h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls= -github.com/adrg/xdg v0.4.0/go.mod h1:N6ag73EX4wyxeaoeHctc1mas01KZgsj5tYiAIwqJE/E= +github.com/ThalesIgnite/crypto11 v1.2.5 h1:1IiIIEqYmBvUYFeMnHqRft4bwf/O36jryEUpY+9ef8E= +github.com/ThalesIgnite/crypto11 v1.2.5/go.mod h1:ILDKtnCKiQ7zRoNxcp36Y1ZR8LBPmR2E23+wTQe/MlE= +github.com/adrg/xdg v0.5.0 h1:dDaZvhMXatArP1NPHhnfaQUqWBLBsmx1h1HXQdMoFCY= +github.com/adrg/xdg v0.5.0/go.mod h1:dDdY4M4DF9Rjy4kHPeNL+ilVF+p2lK8IdM9/rTSGcI4= 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= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= +github.com/agnivade/levenshtein v1.1.1 h1:QY8M92nrzkmr798gCo3kmMyqXFzdQVpxLlGPRBij0P8= +github.com/agnivade/levenshtein v1.1.1/go.mod h1:veldBMzWxcCG2ZvUTKD2kJNRdCk5hVbJomOvKkmgYbo= +github.com/alessio/shellescape v1.4.1 h1:V7yhSDDn8LP4lc4jS8pFkt0zCnzVJlG5JXy9BVKJUX0= +github.com/alessio/shellescape v1.4.1/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30= +github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.4 h1:iC9YFYKDGEy3n/FtqJnOkZsene9olVspKmkX5A2YBEo= +github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.4/go.mod h1:sCavSAvdzOjul4cEqeVtvlSaSScfNsTQ+46HwlTL1hc= +github.com/alibabacloud-go/cr-20160607 v1.0.1 h1:WEnP1iPFKJU74ryUKh/YDPHoxMZawqlPajOymyNAkts= +github.com/alibabacloud-go/cr-20160607 v1.0.1/go.mod h1:QHeKZtZ3F3FOE+/uIXCBAp8POwnUYekpLwr1dtQa5r0= +github.com/alibabacloud-go/cr-20181201 v1.0.10 h1:B60f6S1imsgn2fgC6X6FrVNrONDrbCT0NwYhsJ0C9/c= +github.com/alibabacloud-go/cr-20181201 v1.0.10/go.mod h1:VN9orB/w5G20FjytoSpZROqu9ZqxwycASmGqYUJSoDc= +github.com/alibabacloud-go/darabonba-openapi v0.2.1 h1:WyzxxKvhdVDlwpAMOHgAiCJ+NXa6g5ZWPFEzaK/ewwY= +github.com/alibabacloud-go/darabonba-openapi v0.2.1/go.mod h1:zXOqLbpIqq543oioL9IuuZYOQgHQ5B8/n5OPrnko8aY= +github.com/alibabacloud-go/debug v1.0.0 h1:3eIEQWfay1fB24PQIEzXAswlVJtdQok8f3EVN5VrBnA= +github.com/alibabacloud-go/debug v1.0.0/go.mod h1:8gfgZCCAC3+SCzjWtY053FrOcd4/qlH6IHTI4QyICOc= +github.com/alibabacloud-go/endpoint-util v1.1.1 h1:ZkBv2/jnghxtU0p+upSU0GGzW1VL9GQdZO3mcSUTUy8= +github.com/alibabacloud-go/endpoint-util v1.1.1/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE= +github.com/alibabacloud-go/openapi-util v0.1.0 h1:0z75cIULkDrdEhkLWgi9tnLe+KhAFE/r5Pb3312/eAY= +github.com/alibabacloud-go/openapi-util v0.1.0/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws= +github.com/alibabacloud-go/tea v1.2.1 h1:rFF1LnrAdhaiPmKwH5xwYOKlMh66CqRwPUTzIK74ask= +github.com/alibabacloud-go/tea v1.2.1/go.mod h1:qbzof29bM/IFhLMtJPrgTGK3eauV5J2wSyEUo4OEmnA= +github.com/alibabacloud-go/tea-utils v1.4.5 h1:h0/6Xd2f3bPE4XHTvkpjwxowIwRCJAJOqY6Eq8f3zfA= +github.com/alibabacloud-go/tea-utils v1.4.5/go.mod h1:KNcT0oXlZZxOXINnZBs6YvgOd5aYp9U67G+E3R8fcQw= +github.com/alibabacloud-go/tea-xml v1.1.3 h1:7LYnm+JbOq2B+T/B0fHC4Ies4/FofC4zHzYtqw7dgt0= +github.com/alibabacloud-go/tea-xml v1.1.3/go.mod h1:Rq08vgCcCAjHyRi/M7xlHKUykZCEtyBy9+DPF6GgEu8= +github.com/aliyun/credentials-go v1.3.1 h1:uq/0v7kWrxmoLGpqjx7vtQ/s03f0zR//0br/xWDTE28= +github.com/aliyun/credentials-go v1.3.1/go.mod h1:8jKYhQuDawt8x2+fusqa1Y6mPxemTsBEN04dgcAcYz0= 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/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI= +github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g= github.com/apparentlymart/go-cidr v1.1.0 h1:2mAhrMoF+nhXqxTzSZMUzDHkLjmIHC+Zzn4tdgBZjnU= github.com/apparentlymart/go-cidr v1.1.0/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc= -github.com/apparentlymart/go-dump v0.0.0-20190214190832-042adf3cf4a0 h1:MzVXffFUye+ZcSR6opIgz9Co7WcDx6ZcY+RjfFHoA0I= -github.com/apparentlymart/go-dump v0.0.0-20190214190832-042adf3cf4a0/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJEynmyUenKwP++x/+DdGV/Ec= github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= @@ -254,41 +318,51 @@ 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-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= +github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= 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.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.50.36 h1:PjWXHwZPuTLMR1NIb8nEjLucZBMzmf84TLoLbD8BZqk= -github.com/aws/aws-sdk-go v1.50.36/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= -github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA= -github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= -github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA= -github.com/aws/aws-sdk-go-v2/config v1.27.11/go.mod h1:SMsV78RIOYdve1vf36z8LmnszlRWkwMQtomCAI0/mIE= -github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHHvIq0l/pX3fwO+Tzs= -github.com/aws/aws-sdk-go-v2/credentials v1.17.11/go.mod h1:AQtFPsDH9bI2O+71anW6EKL+NcD7LG3dpKGMV4SShgo= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5/go.mod h1:jU1li6RFryMz+so64PpKtudI+QzbKoIEivqdf6LNpOc= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk= -github.com/aws/aws-sdk-go-v2/service/kms v1.30.1 h1:SBn4I0fJXF9FYOVRSVMWuhvEKoAHDikjGpS3wlmw5DE= -github.com/aws/aws-sdk-go-v2/service/kms v1.30.1/go.mod h1:2snWQJQUKsbN66vAawJuOGX7dr37pfOq9hb0tZDGIqQ= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 h1:vN8hEbpRnL7+Hopy9dzmRle1xmDc7o8tmY0klsr175w= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.5/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 h1:Jux+gDDyi1Lruk+KHF91tK2KCuY61kzoCpvtvJJBtOE= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4/go.mod h1:mUYPBhaF2lGiukDEjJX2BLRRKTmoUSitGDUgM4tRxak= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 h1:cwIxeBttqPN3qkaAjcEcsh8NYr8n2HZPkcKgPAi1phU= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.6/go.mod h1:FZf1/nKNEkHdGGJP/cI2MoIMquumuRK6ol3QQJNDxmw= -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/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU= +github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= +github.com/aws/aws-sdk-go-v2 v1.30.5 h1:mWSRTwQAb0aLE17dSzztCVJWI9+cRMgqebndjwDyK0g= +github.com/aws/aws-sdk-go-v2 v1.30.5/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0= +github.com/aws/aws-sdk-go-v2/config v1.27.33 h1:Nof9o/MsmH4oa0s2q9a0k7tMz5x/Yj5k06lDODWz3BU= +github.com/aws/aws-sdk-go-v2/config v1.27.33/go.mod h1:kEqdYzRb8dd8Sy2pOdEbExTTF5v7ozEXX0McgPE7xks= +github.com/aws/aws-sdk-go-v2/credentials v1.17.32 h1:7Cxhp/BnT2RcGy4VisJ9miUPecY+lyE9I8JvcZofn9I= +github.com/aws/aws-sdk-go-v2/credentials v1.17.32/go.mod h1:P5/QMF3/DCHbXGEGkdbilXHsyTBX5D3HSwcrSc9p20I= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13 h1:pfQ2sqNpMVK6xz2RbqLEL0GH87JOwSxPV2rzm8Zsb74= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13/go.mod h1:NG7RXPUlqfsCLLFfi0+IpKN4sCB9D9fw/qTaSB+xRoU= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17 h1:pI7Bzt0BJtYA0N/JEC6B8fJ4RBrEMi1LBrkMdFYNSnQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17/go.mod h1:Dh5zzJYMtxfIjYW+/evjQ8uj2OyR/ve2KROHGHlSFqE= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17 h1:Mqr/V5gvrhA2gvgnF42Zh5iMiQNcOYthFYwCyrnuWlc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17/go.mod h1:aLJpZlCmjE+V+KtN1q1uyZkfnUWpQGpbsn89XPKyzfU= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/service/ecr v1.20.2 h1:y6LX9GUoEA3mO0qpFl1ZQHj1rFyPWVphlzebiSt2tKE= +github.com/aws/aws-sdk-go-v2/service/ecr v1.20.2/go.mod h1:Q0LcmaN/Qr8+4aSBrdrXXePqoX0eOuYpJLbYpilmWnA= +github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.18.2 h1:PpbXaecV3sLAS6rjQiaKw4/jyq3Z8gNzmoJupHAoBp0= +github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.18.2/go.mod h1:fUHpGXr4DrXkEDpGAjClPsviWf+Bszeb0daKE0blxv8= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 h1:KypMCbLPPHEmf9DgMGw51jMj77VfGPAN2Kv4cfhlfgI= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4/go.mod h1:Vz1JQXliGcQktFTN/LN6uGppAIRoLBR2bMvIMP0gOjc= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19 h1:rfprUlsdzgl7ZL2KlXiUAoJnI/VxfHCvDFr2QDFj6u4= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19/go.mod h1:SCWkEdRq8/7EK60NcvvQ6NXKuTcchAD4ROAsC37VEZE= +github.com/aws/aws-sdk-go-v2/service/kms v1.35.7 h1:v0D1LeMkA/X+JHAZWERrr+sUGOt8KrCZKnJA6KszkcE= +github.com/aws/aws-sdk-go-v2/service/kms v1.35.7/go.mod h1:K9lwD0Rsx9+NSaJKsdAdlDK4b2G4KKOEve9PzHxPoMI= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.7 h1:pIaGg+08llrP7Q5aiz9ICWbY8cqhTkyy+0SHvfzQpTc= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.7/go.mod h1:eEygMHnTKH/3kNp9Jr1n3PdejuSNcgwLe1dWgQtO0VQ= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7 h1:/Cfdu0XV3mONYKaOt1Gr0k1KvQzkzPyiKUdlWJqy+J4= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7/go.mod h1:bCbAxKDqNvkHxRaIMnyVPXPo+OaPRwvmgzMxbz1VKSA= +github.com/aws/aws-sdk-go-v2/service/sts v1.30.7 h1:NKTa1eqZYw8tiHSRGpP0VtTdub/8KNk8sDkNPFaOKDE= +github.com/aws/aws-sdk-go-v2/service/sts v1.30.7/go.mod h1:NXi1dIAGteSaRLqYgarlhP/Ij0cFT+qmCwiJqWh/U5o= +github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4= +github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20231024185945-8841054dbdb8 h1:SoFYaT9UyGkR0+nogNyD/Lj+bsixB+SNuAS4ABlEs6M= +github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20231024185945-8841054dbdb8/go.mod h1:2JF49jcDOrLStIXN/j/K1EKRq8a8R2qRnlZA6/o/c7c= 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/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= @@ -299,14 +373,25 @@ 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/brianvoe/gofakeit/v6 v6.24.0 h1:74yq7RRz/noddscZHRS2T84oHZisW9muwbb8sRnU52A= github.com/brianvoe/gofakeit/v6 v6.24.0/go.mod h1:Ow6qC71xtwm79anlwKRlWZW6zVq9D2XHE4QSSMP/rU8= -github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= -github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8= +github.com/bufbuild/protocompile v0.10.0 h1:+jW/wnLMLxaCEG8AX9lD0bQ5v9h1RUiMKOBOT5ll9dM= +github.com/bufbuild/protocompile v0.10.0/go.mod h1:G9qQIQo0xZ6Uyj6CMNz0saGmx2so+KONo8/KrELABiY= +github.com/buildkite/agent/v3 v3.76.2 h1:SweFq3e0N20RikWsVeOXzTjfr0AoOskxm9c0bcNyI0E= +github.com/buildkite/agent/v3 v3.76.2/go.mod h1:9ffbmJD7d7C/nOcElj6Qm+uIj1QoYh3NNvka4rkKkss= +github.com/buildkite/go-pipeline v0.10.0 h1:EDffu+LfMY2k5u+iEdo6Jn3obGKsrL5wicc1O/yFeRs= +github.com/buildkite/go-pipeline v0.10.0/go.mod h1:eMH1kiav5VeiTiu0Mk2/M7nZhKyFeL4iGj7Y7rj4f3w= +github.com/buildkite/interpolate v0.1.3 h1:OFEhqji1rNTRg0u9DsSodg63sjJQEb1uWbENq9fUOBM= +github.com/buildkite/interpolate v0.1.3/go.mod h1:UNVe6A+UfiBNKbhAySrBbZFZFxQ+DXr9nWen6WVt/A8= +github.com/buildkite/roko v1.2.0 h1:hbNURz//dQqNl6Eo9awjQOVOZwSDJ8VEbBDxSfT9rGQ= +github.com/buildkite/roko v1.2.0/go.mod h1:23R9e6nHxgedznkwwfmqZ6+0VJZJZ2Sg/uVcp2cP46I= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/cenkalti/backoff/v3 v3.2.2 h1:cfUAAO3yvKMYKPrvhDuHSwQnhZNk/RMHKdZqKTxfm6M= github.com/cenkalti/backoff/v3 v3.2.2/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= 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.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= 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= @@ -316,15 +401,19 @@ github.com/charmbracelet/lipgloss v0.7.1/go.mod h1:yG0k3giv8Qj8edTCbbg6AlQ5e8KNW github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo= github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30= +github.com/chrismellard/docker-credential-acr-env v0.0.0-20230304212654-82a0ddb27589 h1:krfRl01rzPzxSxyLyrChD+U+MzsBXbm0OwYYB67uF+4= +github.com/chrismellard/docker-credential-acr-env v0.0.0-20230304212654-82a0ddb27589/go.mod h1:OuDyvmLnMCwa2ep4Jkm6nyA0ocJuZlGyk2gGseVzERM= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cilium/ebpf v0.12.3 h1:8ht6F9MquybnY97at+VDZb3eQQr8ev79RueWeVaEcG4= github.com/cilium/ebpf v0.12.3/go.mod h1:TctK1ivibvI3znr66ljgi4hqOT8EYQjz1KWBfb1UVgM= +github.com/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME= +github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= -github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= -github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= +github.com/cloudflare/circl v1.3.9 h1:QFrlgFYf2Qpi8bSpVPK1HBvWpx16v/1TZivyo7pGuBE= +github.com/cloudflare/circl v1.3.9/go.mod h1:PDRU+oXvdD7KCtgKxW95M5Z8BpSCJXQORiZFnBQS5QU= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= @@ -334,32 +423,64 @@ github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cockroachdb/apd/v3 v3.2.1 h1:U+8j7t0axsIgvQUqthuNm82HIrYXodOV2iWLWtEaIwg= +github.com/cockroachdb/apd/v3 v3.2.1/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc= +github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb h1:EDmT6Q9Zs+SbUoc7Ik9EfrFqcylYqgPZ9ANSbTAntnE= +github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb/go.mod h1:ZjrT6AXHbDs86ZSdt/osfBi5qfexBrKUdONk989Wnk4= +github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be h1:J5BL2kskAlV9ckgEsNQXscjIaLiOYiZ75d4e94E6dcQ= +github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be/go.mod h1:mk5IQ+Y0ZeO87b858TlA645sVcEcbiX6YqP98kt+7+w= 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/containerd/go-cni v1.1.9 h1:ORi7P1dYzCwVM6XPN4n3CbkuOx/NZ2DOqy+SHRdo9rU= -github.com/containerd/go-cni v1.1.9/go.mod h1:XYrZJ1d5W6E2VOvjffL3IZq0Dz6bsVlERHbekNK90PM= -github.com/containernetworking/cni v1.1.2 h1:wtRGZVv7olUHMOqouPpn3cXJWpJgM6+EUl31EQbXALQ= -github.com/containernetworking/cni v1.1.2/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= -github.com/cosi-project/runtime v0.4.1 h1:9lJWw5cl3Lz1qP32bl2vxAsJs6LM8KdUGLCc9t/EGqw= -github.com/cosi-project/runtime v0.4.1/go.mod h1:eXVAHf9QzzSVblLUtHHPFOZ7JBuz+GypHbao1vw+SdQ= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/containerd/go-cni v1.1.10 h1:c2U73nld7spSWfiJwSh/8W9DK+/qQwYM2rngIhCyhyg= +github.com/containerd/go-cni v1.1.10/go.mod h1:/Y/sL8yqYQn1ZG1om1OncJB1W4zN3YmjfP/ShCzG/OY= +github.com/containerd/stargz-snapshotter/estargz v0.14.3 h1:OqlDCK3ZVUO6C3B/5FSkDwbkEETK84kQgEeFwDC+62k= +github.com/containerd/stargz-snapshotter/estargz v0.14.3/go.mod h1:KY//uOCIkSuNAHhJogcZtrNHdKrA99/FCCRjE3HD36o= +github.com/containernetworking/cni v1.2.3 h1:hhOcjNVUQTnzdRJ6alC5XF+wd9mfGIUaj8FuJbEslXM= +github.com/containernetworking/cni v1.2.3/go.mod h1:DuLgF+aPd3DzcTQTtp/Nvl1Kim23oFKdm2okJzBQA5M= +github.com/coreos/go-oidc/v3 v3.11.0 h1:Ia3MxdwpSw702YW0xgfmP1GVCMA9aEFWu12XUZ3/OtI= +github.com/coreos/go-oidc/v3 v3.11.0/go.mod h1:gE3LgjOgFoHi9a4ce4/tJczr0Ai2/BoDhf0r5lltWI0= +github.com/cosi-project/runtime v0.5.5 h1:GFoHnngpg4QVZluAUDwUbCe/sYOYBXKULxL/6DD99pU= +github.com/cosi-project/runtime v0.5.5/go.mod h1:m+bkfUzKYeUyoqYAQBxdce3bfgncG8BsqcbfKRbvJKs= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cyberphone/json-canonicalization v0.0.0-20231011164504-785e29786b46 h1:2Dx4IHfC1yHWI12AxQDJM1QbRCDfk6M+blLzlZCXdrc= +github.com/cyberphone/json-canonicalization v0.0.0-20231011164504-785e29786b46/go.mod h1:uzvlm1mxhHkdfqitSA92i7Se+S9ksOn3a3qmv/kyOCw= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= +github.com/danieljoos/wincred v1.2.0 h1:ozqKHaLK0W/ii4KVbbvluM91W2H3Sh0BncbUNPS7jLE= +github.com/danieljoos/wincred v1.2.0/go.mod h1:FzQLLMKBFdvu+osBrnFODiv32YGwCfx0SkRa/eYHgec= 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/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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/digitorus/pkcs7 v0.0.0-20230713084857-e76b763bdc49/go.mod h1:SKVExuS+vpu2l9IoOc0RwqE7NYnb0JlcFHFnEJkVDzc= +github.com/digitorus/pkcs7 v0.0.0-20230818184609-3a137a874352 h1:ge14PCmCvPjpMQMIAH7uKg0lrtNSOdpYsRXlwk3QbaE= +github.com/digitorus/pkcs7 v0.0.0-20230818184609-3a137a874352/go.mod h1:SKVExuS+vpu2l9IoOc0RwqE7NYnb0JlcFHFnEJkVDzc= +github.com/digitorus/timestamp v0.0.0-20231217203849-220c5c2851b7 h1:lxmTCgmHE1GUYL7P0MlNa00M67axePTq+9nBSGddR8I= +github.com/digitorus/timestamp v0.0.0-20231217203849-220c5c2851b7/go.mod h1:GvWntX9qiTlOud0WkQ6ewFm0LPy5JUR1Xo0Ngbd1w6Y= +github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U= +github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= +github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= +github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= 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/cli v27.1.1+incompatible h1:goaZxOqs4QKxznZjjBWKONQci/MywhtRv2oNn0GkeZE= +github.com/docker/cli v27.1.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= +github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker-credential-helpers v0.8.0 h1:YQFtbBQb4VrpoPxhFuzEBPQ9E16qz5SpHLS+uswaCp8= +github.com/docker/docker-credential-helpers v0.8.0/go.mod h1:UGFXcuoQ5TxPiB54nHOZ32AWRqQdECoh/Mg0AlEYb40= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= 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-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= -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/emicklei/go-restful/v3 v3.12.0 h1:y2DdzBAURM29NFF94q6RaY4vjIH1rtwDapwQtU84iWk= +github.com/emicklei/go-restful/v3 v3.12.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/proto v1.12.1 h1:6n/Z2pZAnBwuhU66Gs8160B8rrrYKo7h2F2sCOnNceE= +github.com/emicklei/proto v1.12.1/go.mod h1:rn1FgRS/FANiZdD2djyH7TMA9jdRDcYQ9IEN9yvjX0A= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -379,20 +500,27 @@ github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLi 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= -github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= +github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -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/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/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.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= +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/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= +github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/gertd/go-pluralize v0.2.1 h1:M3uASbVjMnTsPb0PNqg+E/24Vwigyo/tvyMTtAlLgiA= github.com/gertd/go-pluralize v0.2.1/go.mod h1:rbYaKDbsXxmRfr8uygAEKhOWsjyrrqrkHVpZvoOp8zk= 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.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE= github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8= +github.com/go-chi/chi v4.1.2+incompatible h1:fGFk2Gmi/YKXk0OmGfBh0WgmN3XB8lVnEyNz34tQRec= +github.com/go-chi/chi v4.1.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= @@ -404,30 +532,56 @@ github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXY github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A= +github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= 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-jose/go-jose/v4 v4.0.2 h1:R3l3kkBds16bO7ZFAEEcofK0MkrAJt3jlJznWZG0nvk= +github.com/go-jose/go-jose/v4 v4.0.2/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -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/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/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.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/analysis v0.23.0 h1:aGday7OWupfMs+LbmLZG4k0MYXIANxcuBTYUC03zFCU= +github.com/go-openapi/analysis v0.23.0/go.mod h1:9mz9ZWaSlV8TvjQHLl2mUW2PbZtemkE8yA5v22ohupo= +github.com/go-openapi/errors v0.22.0 h1:c4xY/OLxUBSTiepAg3j/MHuAv5mJhnf53LLMWFB+u/w= +github.com/go-openapi/errors v0.22.0/go.mod h1:J3DmZScxCDufmIMsdOuDHxJbdOGC0xtUynjIx092vXE= +github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= +github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= +github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= +github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= +github.com/go-openapi/loads v0.22.0 h1:ECPGd4jX1U6NApCGG1We+uEozOAvXvJSF4nnwHZ8Aco= +github.com/go-openapi/loads v0.22.0/go.mod h1:yLsaTCS92mnSAZX5WWoxszLj0u+Ojl+Zs5Stn1oF+rs= +github.com/go-openapi/runtime v0.28.0 h1:gpPPmWSNGo214l6n8hzdXYhPuJcGtziTOgUpvsFWGIQ= +github.com/go-openapi/runtime v0.28.0/go.mod h1:QN7OzcS+XuYmkQLw05akXk0jRH/eZ3kb18+1KwW9gyc= +github.com/go-openapi/spec v0.21.0 h1:LTVzPc3p/RzRnkQqLRndbAzjY0d0BCL72A6j3CdL9ZY= +github.com/go-openapi/spec v0.21.0/go.mod h1:78u6VdPw81XU44qEWGhtr982gJ5BWg2c0I5XwVMotYk= +github.com/go-openapi/strfmt v0.23.0 h1:nlUS6BCqcnAk0pyhi9Y+kdDVZdZMHfEKQiS4HaMgO/c= +github.com/go-openapi/strfmt v0.23.0/go.mod h1:NrtIpfKtWIygRkKVsxh7XQMDQW5HKQl6S5ik2elW+K4= +github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= +github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= +github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= +github.com/go-piv/piv-go v1.11.0 h1:5vAaCdRTFSIW4PeqMbnsDlUZ7odMYWnHBDGdmtU/Zhg= +github.com/go-piv/piv-go v1.11.0/go.mod h1:NZ2zmjVkfFaL/CF8cVQ/pXdXtuj110zEKGdJM6fJZZM= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= 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-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68= -github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +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.1.1 h1:0r/53hagsehfO4bzD2Pgr/+RgHqhmf+k1Bpse2cTu1U= +github.com/go-test/deep v1.1.1/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= +github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= +github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= +github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0= github.com/gofrs/uuid v4.2.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.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= 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/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -468,10 +622,16 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 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/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= -github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= +github.com/google/cel-go v0.21.0 h1:cl6uW/gxN+Hy50tNYvI691+sXxioCnstFzLp2WO4GCI= +github.com/google/cel-go v0.21.0/go.mod h1:rHUlWCcBKgyEk+eV03RPdZUekPp6YcJwV0FxuUksYxc= +github.com/google/certificate-transparency-go v1.2.1 h1:4iW/NwzqOqYEEoCBEFP+jPbBXbLqMpq3CifMyOnDUME= +github.com/google/certificate-transparency-go v1.2.1/go.mod h1:bvn/ytAccv+I6+DGkqpvSsEdiVGramgaSC6RD3tEmeE= +github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 h1:0VpGH+cDhbDtdcweoyCVsF3fhN8kejK6rFe/2FFX2nU= +github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49/go.mod h1:BkkQ4L1KS1xMt2aWSPStnn55ChGC0DPOn2FQYj+f25M= 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= @@ -489,6 +649,10 @@ github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-containerregistry v0.20.2 h1:B1wPJ1SN/S7pB+ZAimcciVD+r+yV/l/DSArMxlbwseo= +github.com/google/go-containerregistry v0.20.2/go.mod h1:z38EKdKh4h7IP2gSfUUqEvalZBqs6AoLeWfUy34nQC8= +github.com/google/go-github/v55 v55.0.0 h1:4pp/1tNMB9X/LuAhs5i0KQAE40NmiR/y6prLNb9x9cg= +github.com/google/go-github/v55 v55.0.0/go.mod h1:JLahOTA1DnXzhxEymmFF5PP2tSS9JVNj68mSZNDwskA= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -499,8 +663,8 @@ github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXi github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= -github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= -github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/martian/v3 v3.3.3 h1:DIhPTQrbPkgs2yJYdXU/eNACCG5DVQjySNRNlflZ9Fc= +github.com/google/martian/v3 v3.3.3/go.mod h1:iEPrYcgCF7jA9OtScMFQyAlZZ4YXTKEtJ1E6RWzmBA0= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= @@ -510,20 +674,23 @@ github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= 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-20240402174815-29b9bb013b0f h1:f00RU+zOX+B3rLAmMMkzHUF2h1z4DeYR9tTCvEq2REY= -github.com/google/pprof v0.0.0-20240402174815-29b9bb013b0f/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= -github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= +github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= +github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= 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/tink/go v1.7.0 h1:6Eox8zONGebBFcCBqkVmt60LaWZa6xg1cl/DwAh/J1w= +github.com/google/tink/go v1.7.0/go.mod h1:GAUOd+QE3pgj9q8VKIGTCP33c/B7eb4NhxLcgTJZStM= +github.com/google/trillian v1.6.0 h1:jMBeDBIkINFvS2n6oV5maDqfRlxREAc6CW9QYWQ0qT4= +github.com/google/trillian v1.6.0/go.mod h1:Yu3nIMITzNhhMJEHjAtp6xKiu+H/iHu2Oq5FjV2mCWI= 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= @@ -545,15 +712,14 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99 github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -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/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s= +github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= -github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1 h1:/c3QmbOGMGTOumP2iT/rCwB7b0QDGLKzqOmktBjT+Is= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1/go.mod h1:5SN9VR2LTsRFsrEC6FHgRbTWrTHu6tqPeKxEQv15giM= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -588,44 +754,45 @@ github.com/hashicorp/go-sockaddr v1.0.6 h1:RSG8rKU28VTUTvEKghe5gIhIQpv8evvNpnDEy github.com/hashicorp/go-sockaddr v1.0.6/go.mod h1:uoUUmtwU7n9Dv3O4SNLeFvg0SxQ3lyjsj6+CCykpaxI= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -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-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= 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/hc-install v0.6.4 h1:QLqlM56/+SIIGvGcfFiwMY3z5WGXT066suo/v9Km8e0= -github.com/hashicorp/hc-install v0.6.4/go.mod h1:05LWLy8TD842OtgcfBbOT0WMoInBMUSHjmDx10zuBIA= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/hcl/v2 v2.20.0 h1:l++cRs/5jQOiKVvqXZm/P1ZEfVXJmvLS9WSVxkaeTb4= -github.com/hashicorp/hcl/v2 v2.20.0/go.mod h1:WmcD/Ym72MDOOx5F62Ly+leloeu6H7m0pG7VBiU6pQk= +github.com/hashicorp/hc-install v0.8.0 h1:LdpZeXkZYMQhoKPCecJHlKvUkQFixN/nvyR1CdfOLjI= +github.com/hashicorp/hc-install v0.8.0/go.mod h1:+MwJYjDfCruSD/udvBmRB22Nlkwwkwf5sAB6uTIhSaU= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= +github.com/hashicorp/hcl/v2 v2.21.0 h1:lve4q/o/2rqwYOgUg3y3V2YPyD1/zkCLGjIV74Jit14= +github.com/hashicorp/hcl/v2 v2.21.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 h1:T1Q6ag9tCwun16AW+XK3tAql24P4uTGUMIn1/92WsQQ= 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/terraform-exec v0.20.0 h1:DIZnPsqzPGuUnq6cH8jWcPunBfY+C+M8JyYF3vpnuEo= -github.com/hashicorp/terraform-exec v0.20.0/go.mod h1:ckKGkJWbsNqFKV1itgMnE0hY9IYf1HoiekpuN0eWoDw= -github.com/hashicorp/terraform-json v0.21.0 h1:9NQxbLNqPbEMze+S6+YluEdXgJmhQykRyRNd+zTI05U= -github.com/hashicorp/terraform-json v0.21.0/go.mod h1:qdeBs11ovMzo5puhrRibdD6d2Dq6TyE/28JiU4tIQxk= +github.com/hashicorp/terraform-exec v0.21.0 h1:uNkLAe95ey5Uux6KJdua6+cv8asgILFVWkd/RG0D2XQ= +github.com/hashicorp/terraform-exec v0.21.0/go.mod h1:1PPeMYou+KDUSSeRE9szMZ/oHf4fYUmB923Wzbq1ICg= +github.com/hashicorp/terraform-json v0.22.1 h1:xft84GZR0QzjPVWs4lRUwvTcPnegqlyS7orfb5Ltvec= +github.com/hashicorp/terraform-json v0.22.1/go.mod h1:JbWSQCLFSXFFhg42T7l9iJwdGXBYV8fmmD6o/ML4p3A= github.com/hashicorp/terraform-plugin-framework v1.13.0 h1:8OTG4+oZUfKgnfTdPTJwZ532Bh2BobF4H+yBiYJ/scw= github.com/hashicorp/terraform-plugin-framework v1.13.0/go.mod h1:j64rwMGpgM3NYXTKuxrCnyubQb/4VKldEKlcG8cvmjU= github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 h1:gm5b1kHgFFhaKFhm4h2TgvMUlNzFAtUqlcOWnWPm+9E= github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1/go.mod h1:MsjL1sQ9L7wGwzJ5RjcI6FzEMdyoBnw+XK8ZnOvQOLY= -github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 h1:HOjBuMbOEzl7snOdOoUfE2Jgeto6JOjLVQ39Ls2nksc= -github.com/hashicorp/terraform-plugin-framework-validators v0.12.0/go.mod h1:jfHGE/gzjxYz6XoUwi/aYiiKrJDeutQNUtGQXkaHklg= +github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 h1:bxZfGo9DIUoLLtHMElsu+zwqI4IsMZQBRRy4iLzZJ8E= +github.com/hashicorp/terraform-plugin-framework-validators v0.13.0/go.mod h1:wGeI02gEhj9nPANU62F2jCaHjXulejm/X+af4PdZaNo= github.com/hashicorp/terraform-plugin-go v0.25.0 h1:oi13cx7xXA6QciMcpcFi/rwA974rdTxjqEhXJjbAyks= github.com/hashicorp/terraform-plugin-go v0.25.0/go.mod h1:+SYagMYadJP86Kvn+TGeV+ofr/R3g4/If0O5sO96MVw= github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0= github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow= github.com/hashicorp/terraform-plugin-sdk v1.7.0 h1:B//oq0ZORG+EkVrIJy0uPGSonvmXqxSzXe8+GhknoW0= github.com/hashicorp/terraform-plugin-sdk v1.7.0/go.mod h1:OjgQmey5VxnPej/buEhe+YqKm0KNvV3QqU4hkqHqPCY= -github.com/hashicorp/terraform-plugin-testing v1.7.0 h1:I6aeCyZ30z4NiI3tzyDoO6fS7YxP5xSL1ceOon3gTe8= -github.com/hashicorp/terraform-plugin-testing v1.7.0/go.mod h1:sbAreCleJNOCz+y5vVHV8EJkIWZKi/t4ndKiUjM9vao= +github.com/hashicorp/terraform-plugin-testing v1.10.0 h1:2+tmRNhvnfE4Bs8rB6v58S/VpqzGC6RCh9Y8ujdn+aw= +github.com/hashicorp/terraform-plugin-testing v1.10.0/go.mod h1:iWRW3+loP33WMch2P/TEyCxxct/ZEcCGMquSLSCVsrc= github.com/hashicorp/terraform-registry-address v0.2.3 h1:2TAiKJ1A3MAkZlH1YI/aTVcLZRu7JseiXNRHbOAyoTI= github.com/hashicorp/terraform-registry-address v0.2.3/go.mod h1:lFHA76T8jfQteVfT7caREqguFrW3c4MFSPhZB7HHgUM= github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ= github.com/hashicorp/terraform-svchost v0.1.1/go.mod h1:mNsjQfZyf/Jhz35v6/0LWcv26+X7JPS+buii2c9/ctc= -github.com/hashicorp/vault/api v1.12.0 h1:meCpJSesvzQyao8FCOgk2fGdoADAnbDu2WPJN1lDLJ4= -github.com/hashicorp/vault/api v1.12.0/go.mod h1:si+lJCYO7oGkIoNPAN8j3azBLTn9SjMGS+jFaHd1Cck= +github.com/hashicorp/vault/api v1.14.0 h1:Ah3CFLixD5jmjusOgm8grfN9M0d+Y8fVR2SW0K6pJLU= +github.com/hashicorp/vault/api v1.14.0/go.mod h1:pV9YLxBGSz+cItFDd8Ii4G17waWOQ32zVjMWHe/cOqk= github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/hexops/autogold v1.3.0 h1:IEtGNPxBeBu8RMn8eKWh/Ll9dVNgSnJ7bp/qHgMQ14o= @@ -636,6 +803,8 @@ github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUq github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/hexops/valast v1.4.4 h1:rETyycw+/L2ZVJHHNxEBgh8KUn+87WugH9MxcEv9PGs= github.com/hexops/valast v1.4.4/go.mod h1:Jcy1pNH7LNraVaAZDLyv21hHg2WBv9Nf9FL6fGxU7o4= +github.com/howeyc/gopass v0.0.0-20210920133722-c8aef6fb66ef h1:A9HsByNhogrvm9cWb28sjiS3i7tcKCkflWFEkHfuAgM= +github.com/howeyc/gopass v0.0.0-20210920133722-c8aef6fb66ef/go.mod h1:lADxMC39cJJqL93Duh1xhAs4I2Zs8mKS89XWXFGp9cs= 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= @@ -646,24 +815,32 @@ github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47 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.11/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/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= +github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= +github.com/in-toto/in-toto-golang v0.9.0 h1:tHny7ac4KgtsfrG6ybU8gVOZux2H8jN05AXJ9EBM1XU= +github.com/in-toto/in-toto-golang v0.9.0/go.mod h1:xsBVrVsHNsB61++S6Dy2vWosKhuA3lUTQd+eF9HdeMo= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= -github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= +github.com/jedisct1/go-minisign v0.0.0-20230811132847-661be99b8267 h1:TMtDYDHKYY15rFihtRfck/bfFqNfvcabqvXAFQfAUpY= +github.com/jedisct1/go-minisign v0.0.0-20230811132847-661be99b8267/go.mod h1:h1nSAbGFqGVzn6Jyl1R/iCcBUHN4g+gW1u9CoBTrb9E= +github.com/jellydator/ttlcache/v3 v3.2.0 h1:6lqVJ8X3ZaUwvzENqPAobDsXNExfUJd61u++uW8a3LE= +github.com/jellydator/ttlcache/v3 v3.2.0/go.mod h1:hi7MGFdMAwZna5n2tuvh63DvFLzVKySzCVW6+0gA2n4= +github.com/jhump/protoreflect v1.16.0 h1:54fZg+49widqXYQ0b+usAFHbMkBGR4PpXrsHc8+TBDg= +github.com/jhump/protoreflect v1.16.0/go.mod h1:oYPd7nPvcBw/5wlDfm/AVmU9zH9BgqGCI469pGxfj/8= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= 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/jmhodges/clock v1.2.0 h1:eq4kys+NI0PLngzaHEe7AmPT90XMGIEySD1JfV1PDIs= +github.com/jmhodges/clock v1.2.0/go.mod h1:qKjhA7x7u/lQpPB1XAqX1b1lCI/w3/fNuYpI/ZjLynI= 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/josharian/native v1.1.0 h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtLA= github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w= -github.com/jsimonetti/rtnetlink v1.4.1 h1:JfD4jthWBqZMEffc5RjgmlzpYttAVw1sdnmiNaPO3hE= -github.com/jsimonetti/rtnetlink v1.4.1/go.mod h1:xJjT7t59UIZ62GLZbv6PLLo8VFrostJMPBAheR6OM8w= +github.com/jsimonetti/rtnetlink/v2 v2.0.2 h1:ZKlbCujrIpp4/u3V2Ka0oxlf4BCkt6ojkvpy3nZoCBY= +github.com/jsimonetti/rtnetlink/v2 v2.0.2/go.mod h1:7MoNYNbb3UaDHtF8udiJo/RH6VsTKP1pqKLUTVCvToE= 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= @@ -674,9 +851,8 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= -github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= -github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= +github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -686,8 +862,12 @@ 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 v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/letsencrypt/boulder v0.0.0-20240620165639-de9c06129bec h1:2tTW6cDth2TSgRbAhD7yjZzTQmcN25sDRPEeinR51yQ= +github.com/letsencrypt/boulder v0.0.0-20240620165639-de9c06129bec/go.mod h1:TmwEoGCwIti7BCeJ9hescZgRtatxRE+A72pCoPfmcfk= 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/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= @@ -719,6 +899,8 @@ github.com/mdlayher/netlink v1.7.2 h1:/UtM3ofJap7Vl4QWCPDGXY8d3GIY2UGSDbK+QWmY8/ github.com/mdlayher/netlink v1.7.2/go.mod h1:xraEF7uJbxLhc5fpHL4cPe221LI2bdttWlU+ZGLfQSw= github.com/mdlayher/socket v0.5.1 h1:VZaqt6RkGkt2OE9l3GcC6nZkqD3xKeQLyfleW/uBcos= github.com/mdlayher/socket v0.5.1/go.mod h1:TjPLHI1UgwEv5J1B5q0zTZq12A/6H7nKmtTanQE37IQ= +github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU= +github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/mitchellh/cli v1.1.5 h1:OxRIeJXpAMztws/XHlN2vu6imG5Dpq+j61AzAX5fLng= github.com/mitchellh/cli v1.1.5/go.mod h1:v8+iFts2sPIKUV1ltktPXMCC8fumSKFItNcD2cLtRR4= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= @@ -745,6 +927,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= 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/mozillazg/docker-credential-acr-helper v0.3.0 h1:DVWFZ3/O8BP6Ue3iS/Olw+G07u1hCq1EOVCDZZjCIBI= +github.com/mozillazg/docker-credential-acr-helper v0.3.0/go.mod h1:cZlu3tof523ujmLuiNUb6JsjtHcNA70u1jitrrdnuyA= 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= @@ -759,22 +943,38 @@ github.com/natefinch/atomic v1.0.1 h1:ZPYKxkqQOx3KZ+RsbnP/YsgvxWQPGxjC0oBt2AhwV0 github.com/natefinch/atomic v1.0.1/go.mod h1:N/D/ELrljoqDyT3rZrsUmtsuzvHkeB/wWjHV22AZRbM= github.com/nightlyone/lockfile v1.0.0 h1:RHep2cFKK4PonZJDdEl4GmkabuhbsRMgk/k3uAmxBiA= github.com/nightlyone/lockfile v1.0.0/go.mod h1:rywoIealpdNse2r832aiD9jRk8ErCatROs6LzC841CI= +github.com/nozzle/throttler v0.0.0-20180817012639-2ea982251481 h1:Up6+btDp321ZG5/zdSLo48H9Iaq0UQGthrhWC6pCxzE= +github.com/nozzle/throttler v0.0.0-20180817012639-2ea982251481/go.mod h1:yKZQO8QE2bHlgozqWDiRVqTFlLQSj30K/6SAK8EeYFw= 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.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 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/oleiade/reflections v1.0.1 h1:D1XO3LVEYroYskEsoSiGItp9RUxG6jWnCVvrqH0HHQM= +github.com/oleiade/reflections v1.0.1/go.mod h1:rdFxbxq4QXVZWj0F+e9jqjDkc7dbp97vkRixKo2JR60= github.com/onsi/ginkgo v1.6.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 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= 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.17.1 h1:V++EzdbhI4ZV4ev0UTIj0PzhzOcReJFyJaLjtSF55M8= -github.com/onsi/ginkgo/v2 v2.17.1/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs= +github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= +github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/onsi/gomega v1.32.0 h1:JRYU78fJ1LPxlckP6Txi/EYqJvjtMrDC04/MM5XRHPk= -github.com/onsi/gomega v1.32.0/go.mod h1:a4x4gW6Pz2yK1MAmvluYme5lvYTn61afQ2ETw/8n4Lg= +github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= +github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= +github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= +github.com/open-policy-agent/opa v0.67.0 h1:FOdsO9yNhfmrh+72oVK7ImWmzruG+VSpfbr5IBqEWVs= +github.com/open-policy-agent/opa v0.67.0/go.mod h1:aqKlHc8E2VAAylYE9x09zJYr/fYzGX+JKne89UGqFzk= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opentracing/basictracer-go v1.1.0 h1:Oa1fTSBvAl8pa3U+IJYqrKm0NALwH9OsgwOqDv4xJW0= @@ -782,6 +982,10 @@ github.com/opentracing/basictracer-go v1.1.0/go.mod h1:V2HZueSJEp879yv285Aap1BS6 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/pborman/uuid v1.2.1 h1:+ZZIw58t/ozdjRaXh/3awHfmWRbzYxJoAdNJxe/3pvw= +github.com/pborman/uuid v1.2.1/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= +github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= +github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= 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= @@ -792,17 +996,27 @@ github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmd github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk= github.com/pkg/term v1.1.0/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= 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/prometheus/client_golang v1.20.2 h1:5ctymQzZlyOON1666svgwn3s6IKWgfbjsejTMiXIyjg= +github.com/prometheus/client_golang v1.20.2/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= +github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/protocolbuffers/txtpbfmt v0.0.0-20231025115547-084445ff1adf h1:014O62zIzQwvoD7Ekj3ePDF5bv9Xxy0w6AZk0qYbjUk= +github.com/protocolbuffers/txtpbfmt v0.0.0-20231025115547-084445ff1adf/go.mod h1:jgxiZysxFPM+iWKwQwPR+y+Jvo54ARd4EisXxKYpB5c= 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.10.0 h1:jzBKzkLVW0mePeanDRfqSQoCJ5yrkux0jIwAkUxpRKE= @@ -829,12 +1043,14 @@ 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/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= +github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rhysd/go-fakeio v1.0.0 h1:+TjiKCOs32dONY7DaoVz/VPOdvRkPfBkEyUDIpM8FQY= github.com/rhysd/go-fakeio v1.0.0/go.mod h1:joYxF906trVwp2JLrE4jlN7A0z6wrz8O6o1UjarbFzE= 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/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= @@ -845,50 +1061,110 @@ github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkB 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/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= +github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= +github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= +github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4= github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY= +github.com/sassoftware/relic v7.2.1+incompatible h1:Pwyh1F3I0r4clFJXkSI8bOyJINGqpgjJU3DYAZeI05A= +github.com/sassoftware/relic v7.2.1+incompatible/go.mod h1:CWfAxv73/iLZ17rbyhIEq3K9hs5w6FpNMdUT//qR+zk= +github.com/sassoftware/relic/v7 v7.6.2 h1:rS44Lbv9G9eXsukknS4mSjIAuuX+lMq/FnStgmZlUv4= +github.com/sassoftware/relic/v7 v7.6.2/go.mod h1:kjmP0IBVkJZ6gXeAu35/KCEfca//+PKM6vTAsyDPY+k= +github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbmfHkLguCE9laoZCUzEEpIZXA= +github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU= 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= github.com/segmentio/encoding v0.3.5 h1:UZEiaZ55nlXGDL92scoVuw00RmiRCazIEmvPSbSvt8Y= github.com/segmentio/encoding v0.3.5/go.mod h1:n0JeuIqEQrQoPDGsjo8UNd1iA0U8d8+oHAA4E3G3OxM= +github.com/segmentio/ksuid v1.0.4 h1:sBo2BdShXjmcugAMwjugoGUdUV0pcxY5mW4xKRn3v4c= +github.com/segmentio/ksuid v1.0.4/go.mod h1:/XUiZBD3kVx5SmUOl55voK5yeAbBNNIed+2O73XgrPE= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= +github.com/shibumi/go-pathspec v1.3.0 h1:QUyMZhFo0Md5B8zV8x2tesohbb5kfbpTi9rBnKh5dkI= +github.com/shibumi/go-pathspec v1.3.0/go.mod h1:Xutfslp817l2I1cZvgcfeMQJG5QnU2lh5tVaaMCl3jE= 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/siderolabs/crypto v0.4.4 h1:Q6EDBMR2Ub2oAZW5Xl8lrKB27bM3Sn8Gkfw3rngco5U= github.com/siderolabs/crypto v0.4.4/go.mod h1:hsR3tJ3aaeuhCChsLF4dBd9vlJVPvmhg4vvx2ez4aD4= -github.com/siderolabs/gen v0.4.8 h1:VNpbmDLhkXp7qcSEkKk1Ee7vU2afs3xvHrWLGR2UuiY= -github.com/siderolabs/gen v0.4.8/go.mod h1:7ROKVHHB68R3Amrd4a1ZXz/oMrXWF3Mg3lSEgnkJY5c= -github.com/siderolabs/go-api-signature v0.3.2 h1:blqrZF1GM7TWgq7mY7CsR+yQ93u6az0Kf0mfsw+hvf0= -github.com/siderolabs/go-api-signature v0.3.2/go.mod h1:punhUOaXa7LELYBRCUhfgUGH6ieVz68GrP98apCKXj8= +github.com/siderolabs/gen v0.5.0 h1:Afdjx+zuZDf53eH5DB+E+T2JeCwBXGinV66A6osLgQI= +github.com/siderolabs/gen v0.5.0/go.mod h1:1GUMBNliW98Xeq8GPQeVMYqQE09LFItE8enR3wgMh3Q= +github.com/siderolabs/go-api-signature v0.3.6 h1:wDIsXbpl7Oa/FXvxB6uz4VL9INA9fmr3EbmjEZYFJrU= +github.com/siderolabs/go-api-signature v0.3.6/go.mod h1:hoH13AfunHflxbXfh+NoploqV13ZTDfQ1mQJWNVSW9U= github.com/siderolabs/go-blockdevice v0.4.7 h1:2bk4WpEEflGxjrNwp57ye24Pr+cYgAiAeNMWiQOuWbQ= github.com/siderolabs/go-blockdevice v0.4.7/go.mod h1:4PeOuk71pReJj1JQEXDE7kIIQJPVe8a+HZQa+qjxSEA= +github.com/siderolabs/go-blockdevice/v2 v2.0.2 h1:GIdOBrCLQ7X9jbr0P/+7paw5SIfp/LL+dx9mTOzmw8w= +github.com/siderolabs/go-blockdevice/v2 v2.0.2/go.mod h1:74htzCV913UzaLZ4H+NBXkwWlYnBJIq5m/379ZEcu8w= +github.com/siderolabs/go-circular v0.2.0 h1:Xca8zrjF/YsujLbwDSojkKzJe7ngetnpuIJn8N78DJI= +github.com/siderolabs/go-circular v0.2.0/go.mod h1:rrYCwHLYWmxqrmZP+LjYtwB2a55lxzQi0Ztu1VpWZSc= +github.com/siderolabs/go-kubernetes v0.2.12 h1:YaTpKfEynJKBLZeZHJ4Uas4ARVkklOADdkFsKAmh3fc= +github.com/siderolabs/go-kubernetes v0.2.12/go.mod h1:EjCijMrQy7S/P8TWfDISicaLHy9ZY5IgHdsPsjSxW54= github.com/siderolabs/go-pointer v1.0.0 h1:6TshPKep2doDQJAAtHUuHWXbca8ZfyRySjSBT/4GsMU= github.com/siderolabs/go-pointer v1.0.0/go.mod h1:HTRFUNYa3R+k0FFKNv11zgkaCLzEkWVzoYZ433P3kHc= +github.com/siderolabs/go-procfs v0.1.2 h1:bDs9hHyYGE2HO1frpmUsD60yg80VIEDrx31fkbi4C8M= +github.com/siderolabs/go-procfs v0.1.2/go.mod h1:dBzQXobsM7+TWRRI3DS9X7vAuj8Nkfgu3Z/U9iY3ZTY= github.com/siderolabs/go-retry v0.3.3 h1:zKV+S1vumtO72E6sYsLlmIdV/G/GcYSBLiEx/c9oCEg= github.com/siderolabs/go-retry v0.3.3/go.mod h1:Ff/VGc7v7un4uQg3DybgrmOWHEmJ8BzZds/XNn/BqMI= +github.com/siderolabs/image-factory v0.5.0 h1:v1FXZLCcV6xu+6QpgvhDEICxVF7o2VxMjfU0MutkFbo= +github.com/siderolabs/image-factory v0.5.0/go.mod h1:npJwHOBsI+h+gKdezCyrs7ZHDmkgRnrAK2Cjk1nzv8A= github.com/siderolabs/net v0.4.0 h1:1bOgVay/ijPkJz4qct98nHsiB/ysLQU0KLoBC4qLm7I= github.com/siderolabs/net v0.4.0/go.mod h1:/ibG+Hm9HU27agp5r9Q3eZicEfjquzNzQNux5uEk0kM= github.com/siderolabs/protoenc v0.2.1 h1:BqxEmeWQeMpNP3R6WrPqDatX8sM/r4t97OP8mFmg6GA= github.com/siderolabs/protoenc v0.2.1/go.mod h1:StTHxjet1g11GpNAWiATgc8K0HMKiFSEVVFOa/H0otc= -github.com/siderolabs/talos/pkg/machinery v1.7.0 h1:fZiqXwdraM0lfN6/MtBO6sSkeUCaKBtGfP7VUBpOXao= -github.com/siderolabs/talos/pkg/machinery v1.7.0/go.mod h1:YBl9KDCD45Uc7N0rXBY1JqovUn1n46ekUPSNbEVZzQU= -github.com/siderolabs/terraform-provider-talos v0.5.0 h1:ppeU9GQ493FDpCDfDNhDqqVsWEPIv59HI0bYdNLVZtc= -github.com/siderolabs/terraform-provider-talos v0.5.0/go.mod h1:u40oJyP8laPiJTlUjnVdmluCeIftpYEa3JzC1vBtlMk= +github.com/siderolabs/talos v1.8.0 h1:ResbmaS5J4kJw8zJKqfm/p1QYX46oKaC1y9z3K20a00= +github.com/siderolabs/talos v1.8.0/go.mod h1:tuTjvoH+10LFp5i3hRgodG54QmawjMDbrMxXdE+4gas= +github.com/siderolabs/talos/pkg/machinery v1.8.0 h1:azhBj+Nm9oTgaFgcNaHU8TPS9Oi5OdV1ELNgFAVder8= +github.com/siderolabs/talos/pkg/machinery v1.8.0/go.mod h1:kkrPF7yyhNSg8yJx4RJnk21Hi3APAHm3HQm2M3zfwKI= +github.com/siderolabs/terraform-provider-talos v0.6.0 h1:qZDe9cie7+LdyUnxkKZ9zPWUHX9VqfRPlEi2NvfOnIk= +github.com/siderolabs/terraform-provider-talos v0.6.0/go.mod h1:vLJ0TCxZWLoiXaVn9qWEnQOVKKkvlhEGOkEQZ4qzJF8= +github.com/sigstore/cosign/v2 v2.4.0 h1:2NdidNgClg+oXr/fDIr37E/BE6j00gqgUhSiBK2kjSQ= +github.com/sigstore/cosign/v2 v2.4.0/go.mod h1:j+fH1DCUkcn92qp6ezDj4JbGMri6eG1nLJC+hs64rvc= +github.com/sigstore/fulcio v1.5.1 h1:Iasy1zfNjaq8BV4S8o6pXspLDU28PQC2z07GmOu9zpM= +github.com/sigstore/fulcio v1.5.1/go.mod h1:W1A/UHrTopy1IBZPMtHmxg7GPYAu+vt5dRXM3W6yjPo= +github.com/sigstore/protobuf-specs v0.3.2 h1:nCVARCN+fHjlNCk3ThNXwrZRqIommIeNKWwQvORuRQo= +github.com/sigstore/protobuf-specs v0.3.2/go.mod h1:RZ0uOdJR4OB3tLQeAyWoJFbNCBFrPQdcokntde4zRBA= +github.com/sigstore/rekor v1.3.6 h1:QvpMMJVWAp69a3CHzdrLelqEqpTM3ByQRt5B5Kspbi8= +github.com/sigstore/rekor v1.3.6/go.mod h1:JDTSNNMdQ/PxdsS49DJkJ+pRJCO/83nbR5p3aZQteXc= +github.com/sigstore/sigstore v1.8.8 h1:B6ZQPBKK7Z7tO3bjLNnlCMG+H66tO4E/+qAphX8T/hg= +github.com/sigstore/sigstore v1.8.8/go.mod h1:GW0GgJSCTBJY3fUOuGDHeFWcD++c4G8Y9K015pwcpDI= +github.com/sigstore/sigstore-go v0.5.1 h1:5IhKvtjlQBeLnjKkzMELNG4tIBf+xXQkDzhLV77+/8Y= +github.com/sigstore/sigstore-go v0.5.1/go.mod h1:TuOfV7THHqiDaUHuJ5+QN23RP/YoKmsbwJpY+aaYPN0= +github.com/sigstore/sigstore/pkg/signature/kms/aws v1.8.8 h1:2zHmUvaYCwV6LVeTo+OAkTm8ykOGzA9uFlAjwDPAUWM= +github.com/sigstore/sigstore/pkg/signature/kms/aws v1.8.8/go.mod h1:OEhheBplZinUsm7W9BupafztVZV3ldkAxEHbpAeC0Pk= +github.com/sigstore/sigstore/pkg/signature/kms/azure v1.8.8 h1:RKk4Z+qMaLORUdT7zntwMqKiYAej1VQlCswg0S7xNSY= +github.com/sigstore/sigstore/pkg/signature/kms/azure v1.8.8/go.mod h1:dMJdlBWKHMu2xf0wIKpbo7+QfG+RzVkBB3nHP8EMM5o= +github.com/sigstore/sigstore/pkg/signature/kms/gcp v1.8.8 h1:89Xtxj8oqZt3UlSpCP4wApFvnQ2Z/dgowW5QOVhQigI= +github.com/sigstore/sigstore/pkg/signature/kms/gcp v1.8.8/go.mod h1:Wa4xn/H3pU/yW/6tHiMXTpObBtBSGC5q29KYFEPKN6o= +github.com/sigstore/sigstore/pkg/signature/kms/hashivault v1.8.8 h1:Zte3Oogkd8m+nu2oK3yHtGmN++TZWh2Lm6q2iSprT1M= +github.com/sigstore/sigstore/pkg/signature/kms/hashivault v1.8.8/go.mod h1:j00crVw6ki4/WViXflw0zWgNALrAzZT+GbIK8v7Xlz4= +github.com/sigstore/timestamp-authority v1.2.2 h1:X4qyutnCQqJ0apMewFyx+3t7Tws00JQ/JonBiu3QvLE= +github.com/sigstore/timestamp-authority v1.2.2/go.mod h1:nEah4Eq4wpliDjlY342rXclGSO7Kb9hoRrl9tqLW13A= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +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.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= +github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA= +github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM= -github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= +github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= +github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= 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.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= -github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= +github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= 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.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= +github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= +github.com/spiffe/go-spiffe/v2 v2.3.0 h1:g2jYNb/PDMB8I7mBGL2Zuq/Ur6hUhoroxGQFyD6tTj8= +github.com/spiffe/go-spiffe/v2 v2.3.0/go.mod h1:Oxsaio7DBgSNqhAO9i/9tLClaVlfRok7zvJnTV8ZyIY= +github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs= +github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 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= @@ -906,16 +1182,39 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= 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.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= +github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= +github.com/tchap/go-patricia/v2 v2.3.1 h1:6rQp39lgIYZ+MHmdEq4xzuk1t7OdC35z/xm0BGhTkes= +github.com/tchap/go-patricia/v2 v2.3.1/go.mod h1:VZRHKAb53DLaG+nA9EaYYiaEx6YztwDlLElMsnSHD4k= github.com/teekennedy/goldmark-markdown v0.3.0 h1:ik9/biVGCwGWFg8dQ3KVm2pQ/wiiG0whYiUcz9xH0W8= github.com/teekennedy/goldmark-markdown v0.3.0/go.mod h1:kMhDz8La77A9UHvJGsxejd0QUflN9sS+QXCqnhmxmNo= 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/thales-e-security/pool v0.0.2 h1:RAPs4q2EbWsTit6tpzuvTFlgFRJ3S8Evf5gtvVDbmPg= +github.com/thales-e-security/pool v0.0.2/go.mod h1:qtpMm2+thHtqhLzTwgDBj/OuNnMpupY8mv0Phz0gjhU= +github.com/theupdateframework/go-tuf v0.7.0 h1:CqbQFrWo1ae3/I0UCblSbczevCCbS31Qvs5LdxRWqRI= +github.com/theupdateframework/go-tuf v0.7.0/go.mod h1:uEB7WSY+7ZIugK6R1hiBMBjQftaFzn7ZCDJcp1tCUug= +github.com/theupdateframework/go-tuf/v2 v2.0.0 h1:rD8d9RotYBprZVgC+9oyTZ5MmawepnTSTqoDuxjWgbs= +github.com/theupdateframework/go-tuf/v2 v2.0.0/go.mod h1:baB22nBHeHBCeuGZcIlctNq4P61PcOdyARlplg5xmLA= +github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399 h1:e/5i7d4oYZ+C1wj2THlRK+oAhjeS/TRQwMfkIuet3w0= +github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399/go.mod h1:LdwHTNJT99C5fTAzDz0ud328OgXz+gierycbcIx2fRs= +github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho= +github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE= +github.com/transparency-dev/merkle v0.0.2 h1:Q9nBoQcZcgPamMkGn7ghV8XiTZ/kRxn1yCG81+twTK4= +github.com/transparency-dev/merkle v0.0.2/go.mod h1:pqSy+OXefQ1EDUVmAJ8MUhHB9TXGuzVAT58PqBoHz1A= 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/ulikunitz/xz v0.5.10 h1:t92gobL9l3HE202wg3rlk19F6X+JOxl9BBrCCMYEYd8= github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= +github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc= +github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= +github.com/vbatts/tar-split v0.11.5 h1:3bHCTIheBm1qFTcgh9oPu+nNBtX+XJIupG/vacinCts= +github.com/vbatts/tar-split v0.11.5/go.mod h1:yZbwRsSeGjusneWgA781EKej9HF8vme8okylkAeNKLk= +github.com/vishvananda/netns v0.0.4 h1:Oeaw1EM2JMxD51g9uhtC0D7erkIjgmj8+JZc26m1YX8= +github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM= github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI= github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= @@ -923,14 +1222,20 @@ github.com/vmihailenco/msgpack/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IU github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok= github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= +github.com/xanzy/go-gitlab v0.107.0 h1:P2CT9Uy9yN9lJo3FLxpMZ4xj6uWcpnigXsjvqJ6nd2Y= +github.com/xanzy/go-gitlab v0.107.0/go.mod h1:wKNKh3GkYDMOsGmnfuX+ITCmDuSDWFO0G+C4AygL9RY= 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/yashtewari/glob-intersection v0.2.0 h1:8iuHdN88yYuCzCdjt0gDe+6bAhUwBeEWqThExu54RFg= +github.com/yashtewari/glob-intersection v0.2.0/go.mod h1:LK7pIC3piUjovexikBbJ26Yml7g8xa5bsjfx2v1fwok= 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= @@ -939,12 +1244,18 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yuin/goldmark v1.7.4 h1:BDXOHExt+A7gwPCJgPIIq7ENvceR7we7rOS9TNoLZeg= github.com/yuin/goldmark v1.7.4/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E= -github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8= -github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= -github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b h1:FosyBZYxY34Wul7O/MSKey3txpPYyCqVO5ZyceuQJEI= -github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= +github.com/zalando/go-keyring v0.2.3 h1:v9CUu9phlABObO4LPWycf+zwMG7nlbb3t/B5wa97yms= +github.com/zalando/go-keyring v0.2.3/go.mod h1:HL4k+OXQfJUWaMnqyuSOc0drfGPX2b51Du6K+MRgZMk= +github.com/zclconf/go-cty v1.15.0 h1:tTCRWxsexYUmtt/wVxgDClUe+uQusuI443uL6e+5sXQ= +github.com/zclconf/go-cty v1.15.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= +github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= +github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= github.com/zclconf/go-cty-yaml v1.0.1 h1:up11wlgAaDvlAGENcFDnZgkn0qUJurso7k6EpURKNF8= github.com/zclconf/go-cty-yaml v1.0.1/go.mod h1:IP3Ylp0wQpYm50IHK8OZWKMu6sPJIUgKa8XhiVHura0= +github.com/zeebo/errs v1.3.0 h1:hmiaKqgYZzcVgRL1Vkc1Mn2914BbzB0IBxs+ebeutGs= +github.com/zeebo/errs v1.3.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4= +go.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80= +go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= 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= @@ -954,19 +1265,21 @@ 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/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.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 v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= -go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= -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/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw= -go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc= -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/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0/go.mod h1:azvtTADFQJA8mX80jIH/akaE7h+dbm/sVuaHqN13w74= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0/go.mod h1:jjdQuTGVsXV4vSs+CJ2qYDeDPf9yIJV23qlIzBm73Vg= +go.opentelemetry.io/otel v1.28.0 h1:/SqNcYk+idO0CxKEUOtKQClMK/MimZihKYMruSMViUo= +go.opentelemetry.io/otel v1.28.0/go.mod h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4= +go.opentelemetry.io/otel/metric v1.28.0 h1:f0HGvSl1KRAU1DLgLGFjrwVyismPlnuU6JD6bOeuA5Q= +go.opentelemetry.io/otel/metric v1.28.0/go.mod h1:Fb1eVBFZmLVTMb6PPohq3TO9IIhUisDsbJoL/+uQW4s= +go.opentelemetry.io/otel/sdk v1.28.0 h1:b9d7hIry8yZsgtbmM0DKyPWMMUMlK9NEKuIG4aBqWyE= +go.opentelemetry.io/otel/sdk v1.28.0/go.mod h1:oYj7ClPUA7Iw3m+r7GeEjz0qckQRJK2B8zjcZEfu7Pg= +go.opentelemetry.io/otel/trace v1.28.0 h1:GhQ9cUuQGmNDd5BTCP2dAvv75RdMxEfTmYejp+lkx9g= +go.opentelemetry.io/otel/trace v1.28.0/go.mod h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.step.sm/crypto v0.51.1 h1:ktUg/2hetEMiBAqgz502ktZDGoDoGrcHFg3XpkmkvvA= +go.step.sm/crypto v0.51.1/go.mod h1:PdrhttNU/tG9/YsVd4fdlysBN+UV503p0o2irFZQlAw= 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.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -986,15 +1299,13 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -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-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= -golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= +golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1034,8 +1345,8 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -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/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= +golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/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= @@ -1069,7 +1380,6 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY 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-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/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= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= @@ -1092,8 +1402,8 @@ golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= -golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= +golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1119,8 +1429,8 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= -golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= +golang.org/x/oauth2 v0.23.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= @@ -1181,13 +1491,11 @@ golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/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-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1198,7 +1506,6 @@ golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBc 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= -golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211110154304-99a53858aa08/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 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= @@ -1223,16 +1530,16 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= -golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= +golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= -golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= +golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= +golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= 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.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1245,13 +1552,13 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= +golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= 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.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= +golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= 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= @@ -1301,7 +1608,6 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= @@ -1310,8 +1616,8 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= -golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= +golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= +golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1370,8 +1676,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.169.0 h1:QwWPy71FgMWqJN/l6jVlFHUa29a7dcUy02I8o799nPY= -google.golang.org/api v0.169.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= +google.golang.org/api v0.190.0 h1:ASM+IhLY1zljNdLu19W1jTmU6A+gMk6M46Wlur61s+Q= +google.golang.org/api v0.190.0/go.mod h1:QIr6I9iedBLnfqoD6L6Vze1UvS5Hzj5r2aUBOaZnLHo= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1416,9 +1722,7 @@ google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6D 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= google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -1484,12 +1788,12 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 h1:ImUcDPHjTrAqNhlOkSocDLfG9rrNHH7w7uoKWPaWZ8s= -google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7/go.mod h1:/3XmxOjePkvmKrHuBy4zNFw7IzxJXtAgdpXi8Ll990U= -google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8= -google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto v0.0.0-20240730163845-b1a4ccb954bf h1:OqdXDEakZCVtDiZTjcxfwbHPCT11ycCEsTKesBVKvyY= +google.golang.org/genproto v0.0.0-20240730163845-b1a4ccb954bf/go.mod h1:mCr1K1c8kX+1iSBREvU3Juo11CB+QOEWxbRS01wWl5M= +google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc= +google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= 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.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1555,6 +1859,9 @@ 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.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +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= @@ -1578,18 +1885,18 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= 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= -k8s.io/api v0.29.3 h1:2ORfZ7+bGC3YJqGpV0KSDDEVf8hdGQ6A03/50vj8pmw= -k8s.io/api v0.29.3/go.mod h1:y2yg2NTyHUUkIoTC+phinTnEa3KFM6RZ3szxt014a80= -k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= -k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= -k8s.io/client-go v0.29.3 h1:R/zaZbEAxqComZ9FHeQwOh3Y1ZUs7FaHKZdQtIc2WZg= -k8s.io/client-go v0.29.3/go.mod h1:tkDisCvgPfiRpxGnOORfkljmS+UrW+WtXAy2fTvXJB0= -k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= -k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= -k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780= -k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU= +k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI= +k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U= +k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0= +k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f h1:2sXuKesAYbRHxL3aE2PN6zX/gcJr22cjrsej+W784Tc= +k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f/go.mod h1:UxDHUPsUwTOOxSU+oXURfFBcAS6JwiRXTYqYwfuGowc= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw= lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s= mvdan.cc/gofumpt v0.5.0 h1:0EQ+Z56k8tXjj/6TQD25BFNKQXpCvT0rnansIc7Ug5E= @@ -1601,7 +1908,11 @@ 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/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/release-utils v0.8.4 h1:4QVr3UgbyY/d9p74LBhg0njSVQofUsAZqYOzVZBhdBw= +sigs.k8s.io/release-utils v0.8.4/go.mod h1:m1bHfscTemQp+z+pLCZnkXih9n0+WukIUU70n6nFnU0= sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= -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= +software.sslmate.com/src/go-pkcs12 v0.4.0 h1:H2g08FrTvSFKUj+D309j1DPfk5APnIdAQAB8aEykJ5k= +software.sslmate.com/src/go-pkcs12 v0.4.0/go.mod h1:Qiz0EyvDRJjjxGyUQa2cCNZn/wMyzrRJ/qcDXOQazLI= diff --git a/provider/resources.go b/provider/resources.go index 3a8fb5cd..b2e63079 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -24,11 +24,12 @@ import ( // all of the talos token components used below. const ( - talosPkg = "talos" - talosMod = "index" - clientMod = "client" // the client module - clusterMod = "cluster" // the talos module - machineMod = "machine" // the talos module + talosPkg = "talos" + talosMod = "index" + clientMod = "client" // the client module + clusterMod = "cluster" // the cluster module + machineMod = "machine" // the machine module + imageFactoryMod = "image_factory" // the image factory module ) //go:embed cmd/pulumi-resource-talos/bridge-metadata.json @@ -254,6 +255,13 @@ func Provider() tfbridge.ProviderInfo { }, }, Resources: map[string]*tfbridge.ResourceInfo{ + "talos_image_factory_schematic": { + Fields: map[string]*tfbridge.SchemaInfo{ + "schematic": { + CSharpName: "SchematicData", + }, + }, + }, "talos_machine_bootstrap": { Fields: map[string]*tfbridge.SchemaInfo{ "client_configuration": { @@ -351,6 +359,7 @@ func Provider() tfbridge.ProviderInfo { clientMod, clusterMod, machineMod, + imageFactoryMod, }, tks.MakeStandard(talosPkg), ), diff --git a/sdk/dotnet/Cluster/GetHealth.cs b/sdk/dotnet/Cluster/GetHealth.cs index ccbb23dd..578dfb3a 100644 --- a/sdk/dotnet/Cluster/GetHealth.cs +++ b/sdk/dotnet/Cluster/GetHealth.cs @@ -13,13 +13,13 @@ namespace Pulumiverse.Talos.Cluster public static class GetHealth { /// - /// Checks the health of a Talos cluster + /// Waits for the Talos cluster to be healthy. Can be used as a dependency before running other operations on the cluster. /// public static Task InvokeAsync(GetHealthArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.InvokeAsync("talos:cluster/getHealth:getHealth", args ?? new GetHealthArgs(), options.WithDefaults()); /// - /// Checks the health of a Talos cluster + /// Waits for the Talos cluster to be healthy. Can be used as a dependency before running other operations on the cluster. /// public static Output Invoke(GetHealthInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("talos:cluster/getHealth:getHealth", args ?? new GetHealthInvokeArgs(), options.WithDefaults()); @@ -58,6 +58,12 @@ public List Endpoints set => _endpoints = value; } + /// + /// Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false. + /// + [Input("skipKubernetesChecks")] + public bool? SkipKubernetesChecks { get; set; } + [Input("timeouts")] public Inputs.GetHealthTimeoutsArgs? Timeouts { get; set; } @@ -111,6 +117,12 @@ public InputList Endpoints set => _endpoints = value; } + /// + /// Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false. + /// + [Input("skipKubernetesChecks")] + public Input? SkipKubernetesChecks { get; set; } + [Input("timeouts")] public Input? Timeouts { get; set; } @@ -152,6 +164,10 @@ public sealed class GetHealthResult /// The ID of this resource. /// public readonly string Id; + /// + /// Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false. + /// + public readonly bool? SkipKubernetesChecks; public readonly Outputs.GetHealthTimeoutsResult? Timeouts; /// /// List of worker nodes to check for health. @@ -168,6 +184,8 @@ private GetHealthResult( string id, + bool? skipKubernetesChecks, + Outputs.GetHealthTimeoutsResult? timeouts, ImmutableArray workerNodes) @@ -176,6 +194,7 @@ private GetHealthResult( ControlPlaneNodes = controlPlaneNodes; Endpoints = endpoints; Id = id; + SkipKubernetesChecks = skipKubernetesChecks; Timeouts = timeouts; WorkerNodes = workerNodes; } diff --git a/sdk/dotnet/Cluster/Inputs/KubeconfigClientConfigurationArgs.cs b/sdk/dotnet/Cluster/Inputs/KubeconfigClientConfigurationArgs.cs new file mode 100644 index 00000000..71ce506c --- /dev/null +++ b/sdk/dotnet/Cluster/Inputs/KubeconfigClientConfigurationArgs.cs @@ -0,0 +1,49 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.Cluster.Inputs +{ + + public sealed class KubeconfigClientConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The client CA certificate + /// + [Input("caCertificate", required: true)] + public Input CaCertificate { get; set; } = null!; + + /// + /// The client certificate + /// + [Input("clientCertificate", required: true)] + public Input ClientCertificate { get; set; } = null!; + + [Input("clientKey", required: true)] + private Input? _clientKey; + + /// + /// The client key + /// + public Input? ClientKey + { + get => _clientKey; + set + { + var emptySecret = Output.CreateSecret(0); + _clientKey = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + public KubeconfigClientConfigurationArgs() + { + } + public static new KubeconfigClientConfigurationArgs Empty => new KubeconfigClientConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Cluster/Inputs/KubeconfigClientConfigurationGetArgs.cs b/sdk/dotnet/Cluster/Inputs/KubeconfigClientConfigurationGetArgs.cs new file mode 100644 index 00000000..7f835fe2 --- /dev/null +++ b/sdk/dotnet/Cluster/Inputs/KubeconfigClientConfigurationGetArgs.cs @@ -0,0 +1,49 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.Cluster.Inputs +{ + + public sealed class KubeconfigClientConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The client CA certificate + /// + [Input("caCertificate", required: true)] + public Input CaCertificate { get; set; } = null!; + + /// + /// The client certificate + /// + [Input("clientCertificate", required: true)] + public Input ClientCertificate { get; set; } = null!; + + [Input("clientKey", required: true)] + private Input? _clientKey; + + /// + /// The client key + /// + public Input? ClientKey + { + get => _clientKey; + set + { + var emptySecret = Output.CreateSecret(0); + _clientKey = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + public KubeconfigClientConfigurationGetArgs() + { + } + public static new KubeconfigClientConfigurationGetArgs Empty => new KubeconfigClientConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Cluster/Inputs/KubeconfigKubernetesClientConfigurationArgs.cs b/sdk/dotnet/Cluster/Inputs/KubeconfigKubernetesClientConfigurationArgs.cs new file mode 100644 index 00000000..e4767779 --- /dev/null +++ b/sdk/dotnet/Cluster/Inputs/KubeconfigKubernetesClientConfigurationArgs.cs @@ -0,0 +1,55 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.Cluster.Inputs +{ + + public sealed class KubeconfigKubernetesClientConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The kubernetes CA certificate + /// + [Input("caCertificate")] + public Input? CaCertificate { get; set; } + + /// + /// The kubernetes client certificate + /// + [Input("clientCertificate")] + public Input? ClientCertificate { get; set; } + + [Input("clientKey")] + private Input? _clientKey; + + /// + /// The kubernetes client key + /// + public Input? ClientKey + { + get => _clientKey; + set + { + var emptySecret = Output.CreateSecret(0); + _clientKey = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + /// + /// The kubernetes host + /// + [Input("host")] + public Input? Host { get; set; } + + public KubeconfigKubernetesClientConfigurationArgs() + { + } + public static new KubeconfigKubernetesClientConfigurationArgs Empty => new KubeconfigKubernetesClientConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Cluster/Inputs/KubeconfigKubernetesClientConfigurationGetArgs.cs b/sdk/dotnet/Cluster/Inputs/KubeconfigKubernetesClientConfigurationGetArgs.cs new file mode 100644 index 00000000..910444d5 --- /dev/null +++ b/sdk/dotnet/Cluster/Inputs/KubeconfigKubernetesClientConfigurationGetArgs.cs @@ -0,0 +1,55 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.Cluster.Inputs +{ + + public sealed class KubeconfigKubernetesClientConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The kubernetes CA certificate + /// + [Input("caCertificate")] + public Input? CaCertificate { get; set; } + + /// + /// The kubernetes client certificate + /// + [Input("clientCertificate")] + public Input? ClientCertificate { get; set; } + + [Input("clientKey")] + private Input? _clientKey; + + /// + /// The kubernetes client key + /// + public Input? ClientKey + { + get => _clientKey; + set + { + var emptySecret = Output.CreateSecret(0); + _clientKey = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + /// + /// The kubernetes host + /// + [Input("host")] + public Input? Host { get; set; } + + public KubeconfigKubernetesClientConfigurationGetArgs() + { + } + public static new KubeconfigKubernetesClientConfigurationGetArgs Empty => new KubeconfigKubernetesClientConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Cluster/Inputs/KubeconfigTimeoutsArgs.cs b/sdk/dotnet/Cluster/Inputs/KubeconfigTimeoutsArgs.cs new file mode 100644 index 00000000..e72dfc03 --- /dev/null +++ b/sdk/dotnet/Cluster/Inputs/KubeconfigTimeoutsArgs.cs @@ -0,0 +1,33 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.Cluster.Inputs +{ + + public sealed class KubeconfigTimeoutsArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("update")] + public Input? Update { get; set; } + + public KubeconfigTimeoutsArgs() + { + } + public static new KubeconfigTimeoutsArgs Empty => new KubeconfigTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/Cluster/Inputs/KubeconfigTimeoutsGetArgs.cs b/sdk/dotnet/Cluster/Inputs/KubeconfigTimeoutsGetArgs.cs new file mode 100644 index 00000000..5119ef65 --- /dev/null +++ b/sdk/dotnet/Cluster/Inputs/KubeconfigTimeoutsGetArgs.cs @@ -0,0 +1,33 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.Cluster.Inputs +{ + + public sealed class KubeconfigTimeoutsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("update")] + public Input? Update { get; set; } + + public KubeconfigTimeoutsGetArgs() + { + } + public static new KubeconfigTimeoutsGetArgs Empty => new KubeconfigTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/Cluster/Kubeconfig.cs b/sdk/dotnet/Cluster/Kubeconfig.cs new file mode 100644 index 00000000..aeea48b9 --- /dev/null +++ b/sdk/dotnet/Cluster/Kubeconfig.cs @@ -0,0 +1,180 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.Cluster +{ + /// + /// Retrieves the kubeconfig for a Talos cluster + /// + [TalosResourceType("talos:cluster/kubeconfig:Kubeconfig")] + public partial class Kubeconfig : global::Pulumi.CustomResource + { + /// + /// The client configuration data + /// + [Output("clientConfiguration")] + public Output ClientConfiguration { get; private set; } = null!; + + /// + /// endpoint to use for the talosclient. If not set, the node value will be used + /// + [Output("endpoint")] + public Output Endpoint { get; private set; } = null!; + + /// + /// The raw kubeconfig + /// + [Output("kubeconfigRaw")] + public Output KubeconfigRaw { get; private set; } = null!; + + /// + /// The kubernetes client configuration + /// + [Output("kubernetesClientConfiguration")] + public Output KubernetesClientConfiguration { get; private set; } = null!; + + /// + /// controlplane node to retrieve the kubeconfig from + /// + [Output("node")] + public Output Node { get; private set; } = null!; + + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + + + /// + /// Create a Kubeconfig resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public Kubeconfig(string name, KubeconfigArgs args, CustomResourceOptions? options = null) + : base("talos:cluster/kubeconfig:Kubeconfig", name, args ?? new KubeconfigArgs(), MakeResourceOptions(options, "")) + { + } + + private Kubeconfig(string name, Input id, KubeconfigState? state = null, CustomResourceOptions? options = null) + : base("talos:cluster/kubeconfig:Kubeconfig", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pulumiverse", + AdditionalSecretOutputs = + { + "kubeconfigRaw", + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing Kubeconfig resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static Kubeconfig Get(string name, Input id, KubeconfigState? state = null, CustomResourceOptions? options = null) + { + return new Kubeconfig(name, id, state, options); + } + } + + public sealed class KubeconfigArgs : global::Pulumi.ResourceArgs + { + /// + /// The client configuration data + /// + [Input("clientConfiguration", required: true)] + public Input ClientConfiguration { get; set; } = null!; + + /// + /// endpoint to use for the talosclient. If not set, the node value will be used + /// + [Input("endpoint")] + public Input? Endpoint { get; set; } + + /// + /// controlplane node to retrieve the kubeconfig from + /// + [Input("node", required: true)] + public Input Node { get; set; } = null!; + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public KubeconfigArgs() + { + } + public static new KubeconfigArgs Empty => new KubeconfigArgs(); + } + + public sealed class KubeconfigState : global::Pulumi.ResourceArgs + { + /// + /// The client configuration data + /// + [Input("clientConfiguration")] + public Input? ClientConfiguration { get; set; } + + /// + /// endpoint to use for the talosclient. If not set, the node value will be used + /// + [Input("endpoint")] + public Input? Endpoint { get; set; } + + [Input("kubeconfigRaw")] + private Input? _kubeconfigRaw; + + /// + /// The raw kubeconfig + /// + public Input? KubeconfigRaw + { + get => _kubeconfigRaw; + set + { + var emptySecret = Output.CreateSecret(0); + _kubeconfigRaw = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + /// + /// The kubernetes client configuration + /// + [Input("kubernetesClientConfiguration")] + public Input? KubernetesClientConfiguration { get; set; } + + /// + /// controlplane node to retrieve the kubeconfig from + /// + [Input("node")] + public Input? Node { get; set; } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public KubeconfigState() + { + } + public static new KubeconfigState Empty => new KubeconfigState(); + } +} diff --git a/sdk/dotnet/Cluster/Outputs/KubeconfigClientConfiguration.cs b/sdk/dotnet/Cluster/Outputs/KubeconfigClientConfiguration.cs new file mode 100644 index 00000000..ebca0469 --- /dev/null +++ b/sdk/dotnet/Cluster/Outputs/KubeconfigClientConfiguration.cs @@ -0,0 +1,43 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.Cluster.Outputs +{ + + [OutputType] + public sealed class KubeconfigClientConfiguration + { + /// + /// The client CA certificate + /// + public readonly string CaCertificate; + /// + /// The client certificate + /// + public readonly string ClientCertificate; + /// + /// The client key + /// + public readonly string ClientKey; + + [OutputConstructor] + private KubeconfigClientConfiguration( + string caCertificate, + + string clientCertificate, + + string clientKey) + { + CaCertificate = caCertificate; + ClientCertificate = clientCertificate; + ClientKey = clientKey; + } + } +} diff --git a/sdk/dotnet/Cluster/Outputs/KubeconfigKubernetesClientConfiguration.cs b/sdk/dotnet/Cluster/Outputs/KubeconfigKubernetesClientConfiguration.cs new file mode 100644 index 00000000..f7b01906 --- /dev/null +++ b/sdk/dotnet/Cluster/Outputs/KubeconfigKubernetesClientConfiguration.cs @@ -0,0 +1,50 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.Cluster.Outputs +{ + + [OutputType] + public sealed class KubeconfigKubernetesClientConfiguration + { + /// + /// The kubernetes CA certificate + /// + public readonly string? CaCertificate; + /// + /// The kubernetes client certificate + /// + public readonly string? ClientCertificate; + /// + /// The kubernetes client key + /// + public readonly string? ClientKey; + /// + /// The kubernetes host + /// + public readonly string? Host; + + [OutputConstructor] + private KubeconfigKubernetesClientConfiguration( + string? caCertificate, + + string? clientCertificate, + + string? clientKey, + + string? host) + { + CaCertificate = caCertificate; + ClientCertificate = clientCertificate; + ClientKey = clientKey; + Host = host; + } + } +} diff --git a/sdk/dotnet/Cluster/Outputs/KubeconfigTimeouts.cs b/sdk/dotnet/Cluster/Outputs/KubeconfigTimeouts.cs new file mode 100644 index 00000000..edb73d4d --- /dev/null +++ b/sdk/dotnet/Cluster/Outputs/KubeconfigTimeouts.cs @@ -0,0 +1,36 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.Cluster.Outputs +{ + + [OutputType] + public sealed class KubeconfigTimeouts + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Create; + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Update; + + [OutputConstructor] + private KubeconfigTimeouts( + string? create, + + string? update) + { + Create = create; + Update = update; + } + } +} diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs new file mode 100644 index 00000000..2c1d0160 --- /dev/null +++ b/sdk/dotnet/Config/Config.cs @@ -0,0 +1,46 @@ +// *** 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.Immutable; + +namespace Pulumiverse.Talos +{ + public static class Config + { + [global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "IDE1006", Justification = + "Double underscore prefix used to avoid conflicts with variable names.")] + private sealed class __Value + { + private readonly Func _getter; + private T _value = default!; + private bool _set; + + public __Value(Func getter) + { + _getter = getter; + } + + public T Get() => _set ? _value : _getter(); + + public void Set(T value) + { + _value = value; + _set = true; + } + } + + private static readonly global::Pulumi.Config __config = new global::Pulumi.Config("talos"); + + private static readonly __Value _imageFactoryUrl = new __Value(() => __config.Get("imageFactoryUrl")); + /// + /// The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev. + /// + public static string? ImageFactoryUrl + { + get => _imageFactoryUrl.Get(); + set => _imageFactoryUrl.Set(value); + } + + } +} diff --git a/sdk/dotnet/Config/README.md b/sdk/dotnet/Config/README.md new file mode 100644 index 00000000..f5312397 --- /dev/null +++ b/sdk/dotnet/Config/README.md @@ -0,0 +1 @@ +A Pulumi package for creating and managing Talos Linux machines and clusters. diff --git a/sdk/dotnet/ImageFactory/GetExtensionsVersions.cs b/sdk/dotnet/ImageFactory/GetExtensionsVersions.cs new file mode 100644 index 00000000..f6f6fb96 --- /dev/null +++ b/sdk/dotnet/ImageFactory/GetExtensionsVersions.cs @@ -0,0 +1,158 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.ImageFactory +{ + public static class GetExtensionsVersions + { + /// + /// The image factory extensions versions data source provides a list of available extensions for a specific talos version from the image factory. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Talos = Pulumi.Talos; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @this = Talos.ImageFactory.GetExtensionsVersions.Invoke(new() + /// { + /// TalosVersion = "v1.7.5", + /// Filters = new Talos.ImageFactory.Inputs.GetExtensionsVersionsFiltersInputArgs + /// { + /// Names = new[] + /// { + /// "amdgpu", + /// "tailscale", + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// + public static Task InvokeAsync(GetExtensionsVersionsArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("talos:imageFactory/getExtensionsVersions:getExtensionsVersions", args ?? new GetExtensionsVersionsArgs(), options.WithDefaults()); + + /// + /// The image factory extensions versions data source provides a list of available extensions for a specific talos version from the image factory. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Talos = Pulumi.Talos; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @this = Talos.ImageFactory.GetExtensionsVersions.Invoke(new() + /// { + /// TalosVersion = "v1.7.5", + /// Filters = new Talos.ImageFactory.Inputs.GetExtensionsVersionsFiltersInputArgs + /// { + /// Names = new[] + /// { + /// "amdgpu", + /// "tailscale", + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetExtensionsVersionsInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("talos:imageFactory/getExtensionsVersions:getExtensionsVersions", args ?? new GetExtensionsVersionsInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetExtensionsVersionsArgs : global::Pulumi.InvokeArgs + { + /// + /// The filter to apply to the extensions list. + /// + [Input("filters")] + public Inputs.GetExtensionsVersionsFiltersArgs? Filters { get; set; } + + /// + /// The talos version to get extensions for. + /// + [Input("talosVersion", required: true)] + public string TalosVersion { get; set; } = null!; + + public GetExtensionsVersionsArgs() + { + } + public static new GetExtensionsVersionsArgs Empty => new GetExtensionsVersionsArgs(); + } + + public sealed class GetExtensionsVersionsInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The filter to apply to the extensions list. + /// + [Input("filters")] + public Input? Filters { get; set; } + + /// + /// The talos version to get extensions for. + /// + [Input("talosVersion", required: true)] + public Input TalosVersion { get; set; } = null!; + + public GetExtensionsVersionsInvokeArgs() + { + } + public static new GetExtensionsVersionsInvokeArgs Empty => new GetExtensionsVersionsInvokeArgs(); + } + + + [OutputType] + public sealed class GetExtensionsVersionsResult + { + /// + /// The list of available extensions for the specified talos version. + /// + public readonly ImmutableArray ExtensionsInfos; + /// + /// The filter to apply to the extensions list. + /// + public readonly Outputs.GetExtensionsVersionsFiltersResult? Filters; + /// + /// The ID of this resource. + /// + public readonly string Id; + /// + /// The talos version to get extensions for. + /// + public readonly string TalosVersion; + + [OutputConstructor] + private GetExtensionsVersionsResult( + ImmutableArray extensionsInfos, + + Outputs.GetExtensionsVersionsFiltersResult? filters, + + string id, + + string talosVersion) + { + ExtensionsInfos = extensionsInfos; + Filters = filters; + Id = id; + TalosVersion = talosVersion; + } + } +} diff --git a/sdk/dotnet/ImageFactory/GetOverlaysVersions.cs b/sdk/dotnet/ImageFactory/GetOverlaysVersions.cs new file mode 100644 index 00000000..c41bd527 --- /dev/null +++ b/sdk/dotnet/ImageFactory/GetOverlaysVersions.cs @@ -0,0 +1,150 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.ImageFactory +{ + public static class GetOverlaysVersions + { + /// + /// The image factory overlays versions data source provides a list of available overlays for a specific talos version from the image factory. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Talos = Pulumi.Talos; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @this = Talos.ImageFactory.GetOverlaysVersions.Invoke(new() + /// { + /// TalosVersion = "v1.7.5", + /// Filters = new Talos.ImageFactory.Inputs.GetOverlaysVersionsFiltersInputArgs + /// { + /// Name = "rock4cplus", + /// }, + /// }); + /// + /// }); + /// ``` + /// + public static Task InvokeAsync(GetOverlaysVersionsArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("talos:imageFactory/getOverlaysVersions:getOverlaysVersions", args ?? new GetOverlaysVersionsArgs(), options.WithDefaults()); + + /// + /// The image factory overlays versions data source provides a list of available overlays for a specific talos version from the image factory. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Talos = Pulumi.Talos; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @this = Talos.ImageFactory.GetOverlaysVersions.Invoke(new() + /// { + /// TalosVersion = "v1.7.5", + /// Filters = new Talos.ImageFactory.Inputs.GetOverlaysVersionsFiltersInputArgs + /// { + /// Name = "rock4cplus", + /// }, + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetOverlaysVersionsInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("talos:imageFactory/getOverlaysVersions:getOverlaysVersions", args ?? new GetOverlaysVersionsInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetOverlaysVersionsArgs : global::Pulumi.InvokeArgs + { + /// + /// The filter to apply to the overlays list. + /// + [Input("filters")] + public Inputs.GetOverlaysVersionsFiltersArgs? Filters { get; set; } + + /// + /// The talos version to get overlays for. + /// + [Input("talosVersion", required: true)] + public string TalosVersion { get; set; } = null!; + + public GetOverlaysVersionsArgs() + { + } + public static new GetOverlaysVersionsArgs Empty => new GetOverlaysVersionsArgs(); + } + + public sealed class GetOverlaysVersionsInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The filter to apply to the overlays list. + /// + [Input("filters")] + public Input? Filters { get; set; } + + /// + /// The talos version to get overlays for. + /// + [Input("talosVersion", required: true)] + public Input TalosVersion { get; set; } = null!; + + public GetOverlaysVersionsInvokeArgs() + { + } + public static new GetOverlaysVersionsInvokeArgs Empty => new GetOverlaysVersionsInvokeArgs(); + } + + + [OutputType] + public sealed class GetOverlaysVersionsResult + { + /// + /// The filter to apply to the overlays list. + /// + public readonly Outputs.GetOverlaysVersionsFiltersResult? Filters; + /// + /// The ID of this resource. + /// + public readonly string Id; + /// + /// The list of available extensions for the specified talos version. + /// + public readonly ImmutableArray OverlaysInfos; + /// + /// The talos version to get overlays for. + /// + public readonly string TalosVersion; + + [OutputConstructor] + private GetOverlaysVersionsResult( + Outputs.GetOverlaysVersionsFiltersResult? filters, + + string id, + + ImmutableArray overlaysInfos, + + string talosVersion) + { + Filters = filters; + Id = id; + OverlaysInfos = overlaysInfos; + TalosVersion = talosVersion; + } + } +} diff --git a/sdk/dotnet/ImageFactory/GetUrls.cs b/sdk/dotnet/ImageFactory/GetUrls.cs new file mode 100644 index 00000000..7d473809 --- /dev/null +++ b/sdk/dotnet/ImageFactory/GetUrls.cs @@ -0,0 +1,112 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.ImageFactory +{ + public static class GetUrls + { + /// + /// Generates URLs for different assets supported by the Talos image factory. + /// + public static Task InvokeAsync(GetUrlsArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("talos:imageFactory/getUrls:getUrls", args ?? new GetUrlsArgs(), options.WithDefaults()); + + /// + /// Generates URLs for different assets supported by the Talos image factory. + /// + public static Output Invoke(GetUrlsInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("talos:imageFactory/getUrls:getUrls", args ?? new GetUrlsInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetUrlsArgs : global::Pulumi.InvokeArgs + { + [Input("architecture")] + public string? Architecture { get; set; } + + [Input("platform")] + public string? Platform { get; set; } + + [Input("sbc")] + public string? Sbc { get; set; } + + [Input("schematicId", required: true)] + public string SchematicId { get; set; } = null!; + + [Input("talosVersion", required: true)] + public string TalosVersion { get; set; } = null!; + + public GetUrlsArgs() + { + } + public static new GetUrlsArgs Empty => new GetUrlsArgs(); + } + + public sealed class GetUrlsInvokeArgs : global::Pulumi.InvokeArgs + { + [Input("architecture")] + public Input? Architecture { get; set; } + + [Input("platform")] + public Input? Platform { get; set; } + + [Input("sbc")] + public Input? Sbc { get; set; } + + [Input("schematicId", required: true)] + public Input SchematicId { get; set; } = null!; + + [Input("talosVersion", required: true)] + public Input TalosVersion { get; set; } = null!; + + public GetUrlsInvokeArgs() + { + } + public static new GetUrlsInvokeArgs Empty => new GetUrlsInvokeArgs(); + } + + + [OutputType] + public sealed class GetUrlsResult + { + public readonly string Architecture; + public readonly string Id; + public readonly string? Platform; + public readonly string? Sbc; + public readonly string SchematicId; + public readonly string TalosVersion; + public readonly Outputs.GetUrlsUrlsResult Urls; + + [OutputConstructor] + private GetUrlsResult( + string architecture, + + string id, + + string? platform, + + string? sbc, + + string schematicId, + + string talosVersion, + + Outputs.GetUrlsUrlsResult urls) + { + Architecture = architecture; + Id = id; + Platform = platform; + Sbc = sbc; + SchematicId = schematicId; + TalosVersion = talosVersion; + Urls = urls; + } + } +} diff --git a/sdk/dotnet/ImageFactory/GetVersions.cs b/sdk/dotnet/ImageFactory/GetVersions.cs new file mode 100644 index 00000000..7bc3e8da --- /dev/null +++ b/sdk/dotnet/ImageFactory/GetVersions.cs @@ -0,0 +1,87 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.ImageFactory +{ + public static class GetVersions + { + /// + /// The image factory versions data source provides a list of available talos versions from the image factory. + /// + public static Task InvokeAsync(GetVersionsArgs? args = null, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("talos:imageFactory/getVersions:getVersions", args ?? new GetVersionsArgs(), options.WithDefaults()); + + /// + /// The image factory versions data source provides a list of available talos versions from the image factory. + /// + public static Output Invoke(GetVersionsInvokeArgs? args = null, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("talos:imageFactory/getVersions:getVersions", args ?? new GetVersionsInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetVersionsArgs : global::Pulumi.InvokeArgs + { + /// + /// The filter to apply to the overlays list. + /// + [Input("filters")] + public Inputs.GetVersionsFiltersArgs? Filters { get; set; } + + public GetVersionsArgs() + { + } + public static new GetVersionsArgs Empty => new GetVersionsArgs(); + } + + public sealed class GetVersionsInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The filter to apply to the overlays list. + /// + [Input("filters")] + public Input? Filters { get; set; } + + public GetVersionsInvokeArgs() + { + } + public static new GetVersionsInvokeArgs Empty => new GetVersionsInvokeArgs(); + } + + + [OutputType] + public sealed class GetVersionsResult + { + /// + /// The filter to apply to the overlays list. + /// + public readonly Outputs.GetVersionsFiltersResult? Filters; + /// + /// The ID of this resource. + /// + public readonly string Id; + /// + /// The list of available talos versions. + /// + public readonly ImmutableArray TalosVersions; + + [OutputConstructor] + private GetVersionsResult( + Outputs.GetVersionsFiltersResult? filters, + + string id, + + ImmutableArray talosVersions) + { + Filters = filters; + Id = id; + TalosVersions = talosVersions; + } + } +} diff --git a/sdk/dotnet/ImageFactory/Inputs/GetExtensionsVersionsFilters.cs b/sdk/dotnet/ImageFactory/Inputs/GetExtensionsVersionsFilters.cs new file mode 100644 index 00000000..c6045eb1 --- /dev/null +++ b/sdk/dotnet/ImageFactory/Inputs/GetExtensionsVersionsFilters.cs @@ -0,0 +1,33 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.ImageFactory.Inputs +{ + + public sealed class GetExtensionsVersionsFiltersArgs : global::Pulumi.InvokeArgs + { + [Input("names")] + private List? _names; + + /// + /// The name of the extension to filter by. + /// + public List Names + { + get => _names ?? (_names = new List()); + set => _names = value; + } + + public GetExtensionsVersionsFiltersArgs() + { + } + public static new GetExtensionsVersionsFiltersArgs Empty => new GetExtensionsVersionsFiltersArgs(); + } +} diff --git a/sdk/dotnet/ImageFactory/Inputs/GetExtensionsVersionsFiltersArgs.cs b/sdk/dotnet/ImageFactory/Inputs/GetExtensionsVersionsFiltersArgs.cs new file mode 100644 index 00000000..d655c32a --- /dev/null +++ b/sdk/dotnet/ImageFactory/Inputs/GetExtensionsVersionsFiltersArgs.cs @@ -0,0 +1,33 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.ImageFactory.Inputs +{ + + public sealed class GetExtensionsVersionsFiltersInputArgs : global::Pulumi.ResourceArgs + { + [Input("names")] + private InputList? _names; + + /// + /// The name of the extension to filter by. + /// + public InputList Names + { + get => _names ?? (_names = new InputList()); + set => _names = value; + } + + public GetExtensionsVersionsFiltersInputArgs() + { + } + public static new GetExtensionsVersionsFiltersInputArgs Empty => new GetExtensionsVersionsFiltersInputArgs(); + } +} diff --git a/sdk/dotnet/ImageFactory/Inputs/GetOverlaysVersionsFilters.cs b/sdk/dotnet/ImageFactory/Inputs/GetOverlaysVersionsFilters.cs new file mode 100644 index 00000000..bf930012 --- /dev/null +++ b/sdk/dotnet/ImageFactory/Inputs/GetOverlaysVersionsFilters.cs @@ -0,0 +1,27 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.ImageFactory.Inputs +{ + + public sealed class GetOverlaysVersionsFiltersArgs : global::Pulumi.InvokeArgs + { + /// + /// The name of the overlay to filter by. + /// + [Input("name")] + public string? Name { get; set; } + + public GetOverlaysVersionsFiltersArgs() + { + } + public static new GetOverlaysVersionsFiltersArgs Empty => new GetOverlaysVersionsFiltersArgs(); + } +} diff --git a/sdk/dotnet/ImageFactory/Inputs/GetOverlaysVersionsFiltersArgs.cs b/sdk/dotnet/ImageFactory/Inputs/GetOverlaysVersionsFiltersArgs.cs new file mode 100644 index 00000000..5051ba24 --- /dev/null +++ b/sdk/dotnet/ImageFactory/Inputs/GetOverlaysVersionsFiltersArgs.cs @@ -0,0 +1,27 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.ImageFactory.Inputs +{ + + public sealed class GetOverlaysVersionsFiltersInputArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the overlay to filter by. + /// + [Input("name")] + public Input? Name { get; set; } + + public GetOverlaysVersionsFiltersInputArgs() + { + } + public static new GetOverlaysVersionsFiltersInputArgs Empty => new GetOverlaysVersionsFiltersInputArgs(); + } +} diff --git a/sdk/dotnet/ImageFactory/Inputs/GetVersionsFilters.cs b/sdk/dotnet/ImageFactory/Inputs/GetVersionsFilters.cs new file mode 100644 index 00000000..052d4d15 --- /dev/null +++ b/sdk/dotnet/ImageFactory/Inputs/GetVersionsFilters.cs @@ -0,0 +1,27 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.ImageFactory.Inputs +{ + + public sealed class GetVersionsFiltersArgs : global::Pulumi.InvokeArgs + { + /// + /// If set to true, only stable versions will be returned. If set to false, all versions will be returned. + /// + [Input("stableVersionsOnly")] + public bool? StableVersionsOnly { get; set; } + + public GetVersionsFiltersArgs() + { + } + public static new GetVersionsFiltersArgs Empty => new GetVersionsFiltersArgs(); + } +} diff --git a/sdk/dotnet/ImageFactory/Inputs/GetVersionsFiltersArgs.cs b/sdk/dotnet/ImageFactory/Inputs/GetVersionsFiltersArgs.cs new file mode 100644 index 00000000..9f3594d4 --- /dev/null +++ b/sdk/dotnet/ImageFactory/Inputs/GetVersionsFiltersArgs.cs @@ -0,0 +1,27 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.ImageFactory.Inputs +{ + + public sealed class GetVersionsFiltersInputArgs : global::Pulumi.ResourceArgs + { + /// + /// If set to true, only stable versions will be returned. If set to false, all versions will be returned. + /// + [Input("stableVersionsOnly")] + public Input? StableVersionsOnly { get; set; } + + public GetVersionsFiltersInputArgs() + { + } + public static new GetVersionsFiltersInputArgs Empty => new GetVersionsFiltersInputArgs(); + } +} diff --git a/sdk/dotnet/ImageFactory/Outputs/GetExtensionsVersionsExtensionsInfoResult.cs b/sdk/dotnet/ImageFactory/Outputs/GetExtensionsVersionsExtensionsInfoResult.cs new file mode 100644 index 00000000..ee89f7b0 --- /dev/null +++ b/sdk/dotnet/ImageFactory/Outputs/GetExtensionsVersionsExtensionsInfoResult.cs @@ -0,0 +1,42 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.ImageFactory.Outputs +{ + + [OutputType] + public sealed class GetExtensionsVersionsExtensionsInfoResult + { + public readonly string Author; + public readonly string Description; + public readonly string Digest; + public readonly string Name; + public readonly string Ref; + + [OutputConstructor] + private GetExtensionsVersionsExtensionsInfoResult( + string author, + + string description, + + string digest, + + string name, + + string @ref) + { + Author = author; + Description = description; + Digest = digest; + Name = name; + Ref = @ref; + } + } +} diff --git a/sdk/dotnet/ImageFactory/Outputs/GetExtensionsVersionsFiltersResult.cs b/sdk/dotnet/ImageFactory/Outputs/GetExtensionsVersionsFiltersResult.cs new file mode 100644 index 00000000..581da7fe --- /dev/null +++ b/sdk/dotnet/ImageFactory/Outputs/GetExtensionsVersionsFiltersResult.cs @@ -0,0 +1,28 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.ImageFactory.Outputs +{ + + [OutputType] + public sealed class GetExtensionsVersionsFiltersResult + { + /// + /// The name of the extension to filter by. + /// + public readonly ImmutableArray Names; + + [OutputConstructor] + private GetExtensionsVersionsFiltersResult(ImmutableArray names) + { + Names = names; + } + } +} diff --git a/sdk/dotnet/ImageFactory/Outputs/GetOverlaysVersionsFiltersResult.cs b/sdk/dotnet/ImageFactory/Outputs/GetOverlaysVersionsFiltersResult.cs new file mode 100644 index 00000000..1ae04f9a --- /dev/null +++ b/sdk/dotnet/ImageFactory/Outputs/GetOverlaysVersionsFiltersResult.cs @@ -0,0 +1,28 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.ImageFactory.Outputs +{ + + [OutputType] + public sealed class GetOverlaysVersionsFiltersResult + { + /// + /// The name of the overlay to filter by. + /// + public readonly string? Name; + + [OutputConstructor] + private GetOverlaysVersionsFiltersResult(string? name) + { + Name = name; + } + } +} diff --git a/sdk/dotnet/ImageFactory/Outputs/GetOverlaysVersionsOverlaysInfoResult.cs b/sdk/dotnet/ImageFactory/Outputs/GetOverlaysVersionsOverlaysInfoResult.cs new file mode 100644 index 00000000..63531b38 --- /dev/null +++ b/sdk/dotnet/ImageFactory/Outputs/GetOverlaysVersionsOverlaysInfoResult.cs @@ -0,0 +1,38 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.ImageFactory.Outputs +{ + + [OutputType] + public sealed class GetOverlaysVersionsOverlaysInfoResult + { + public readonly string Digest; + public readonly string Image; + public readonly string Name; + public readonly string Ref; + + [OutputConstructor] + private GetOverlaysVersionsOverlaysInfoResult( + string digest, + + string image, + + string name, + + string @ref) + { + Digest = digest; + Image = image; + Name = name; + Ref = @ref; + } + } +} diff --git a/sdk/dotnet/ImageFactory/Outputs/GetUrlsUrlsResult.cs b/sdk/dotnet/ImageFactory/Outputs/GetUrlsUrlsResult.cs new file mode 100644 index 00000000..dbdbbde6 --- /dev/null +++ b/sdk/dotnet/ImageFactory/Outputs/GetUrlsUrlsResult.cs @@ -0,0 +1,99 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.ImageFactory.Outputs +{ + + [OutputType] + public sealed class GetUrlsUrlsResult + { + /// + /// The URL for the disk image. + /// + public readonly string DiskImage; + /// + /// The URL for the disk image with secure boot. + /// + public readonly string DiskImageSecureboot; + /// + /// The URL for the initramfs image. + /// + public readonly string Initramfs; + /// + /// The URL for the installer image. + /// + public readonly string Installer; + /// + /// The URL for the installer image with secure boot. + /// + public readonly string InstallerSecureboot; + /// + /// The URL for the ISO image. + /// + public readonly string Iso; + /// + /// The URL for the ISO image with secure boot. + /// + public readonly string IsoSecureboot; + /// + /// The URL for the kernel image. + /// + public readonly string Kernel; + /// + /// The URL for the kernel command line. + /// + public readonly string KernelCommandLine; + /// + /// The URL for the PXE image. + /// + public readonly string Pxe; + /// + /// The URL for the UKI image. + /// + public readonly string Uki; + + [OutputConstructor] + private GetUrlsUrlsResult( + string diskImage, + + string diskImageSecureboot, + + string initramfs, + + string installer, + + string installerSecureboot, + + string iso, + + string isoSecureboot, + + string kernel, + + string kernelCommandLine, + + string pxe, + + string uki) + { + DiskImage = diskImage; + DiskImageSecureboot = diskImageSecureboot; + Initramfs = initramfs; + Installer = installer; + InstallerSecureboot = installerSecureboot; + Iso = iso; + IsoSecureboot = isoSecureboot; + Kernel = kernel; + KernelCommandLine = kernelCommandLine; + Pxe = pxe; + Uki = uki; + } + } +} diff --git a/sdk/dotnet/ImageFactory/Outputs/GetVersionsFiltersResult.cs b/sdk/dotnet/ImageFactory/Outputs/GetVersionsFiltersResult.cs new file mode 100644 index 00000000..87a2aac0 --- /dev/null +++ b/sdk/dotnet/ImageFactory/Outputs/GetVersionsFiltersResult.cs @@ -0,0 +1,28 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.ImageFactory.Outputs +{ + + [OutputType] + public sealed class GetVersionsFiltersResult + { + /// + /// If set to true, only stable versions will be returned. If set to false, all versions will be returned. + /// + public readonly bool? StableVersionsOnly; + + [OutputConstructor] + private GetVersionsFiltersResult(bool? stableVersionsOnly) + { + StableVersionsOnly = stableVersionsOnly; + } + } +} diff --git a/sdk/dotnet/ImageFactory/README.md b/sdk/dotnet/ImageFactory/README.md new file mode 100644 index 00000000..f5312397 --- /dev/null +++ b/sdk/dotnet/ImageFactory/README.md @@ -0,0 +1 @@ +A Pulumi package for creating and managing Talos Linux machines and clusters. diff --git a/sdk/dotnet/ImageFactory/Schematic.cs b/sdk/dotnet/ImageFactory/Schematic.cs new file mode 100644 index 00000000..fbb192af --- /dev/null +++ b/sdk/dotnet/ImageFactory/Schematic.cs @@ -0,0 +1,97 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.ImageFactory +{ + /// + /// The image factory schematic resource allows you to create a schematic for a Talos image. + /// + [TalosResourceType("talos:imageFactory/schematic:Schematic")] + public partial class Schematic : global::Pulumi.CustomResource + { + /// + /// The schematic yaml respresentation to generate the image. + /// + [Output("schematic")] + public Output SchematicData { get; private set; } = null!; + + + /// + /// Create a Schematic resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public Schematic(string name, SchematicArgs? args = null, CustomResourceOptions? options = null) + : base("talos:imageFactory/schematic:Schematic", name, args ?? new SchematicArgs(), MakeResourceOptions(options, "")) + { + } + + private Schematic(string name, Input id, SchematicState? state = null, CustomResourceOptions? options = null) + : base("talos:imageFactory/schematic:Schematic", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pulumiverse", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing Schematic resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static Schematic Get(string name, Input id, SchematicState? state = null, CustomResourceOptions? options = null) + { + return new Schematic(name, id, state, options); + } + } + + public sealed class SchematicArgs : global::Pulumi.ResourceArgs + { + /// + /// The schematic yaml respresentation to generate the image. + /// + [Input("schematic")] + public Input? SchematicData { get; set; } + + public SchematicArgs() + { + } + public static new SchematicArgs Empty => new SchematicArgs(); + } + + public sealed class SchematicState : global::Pulumi.ResourceArgs + { + /// + /// The schematic yaml respresentation to generate the image. + /// + [Input("schematic")] + public Input? SchematicData { get; set; } + + public SchematicState() + { + } + public static new SchematicState Empty => new SchematicState(); + } +} diff --git a/sdk/dotnet/Machine/ConfigurationApply.cs b/sdk/dotnet/Machine/ConfigurationApply.cs index e62236ca..8b37b2a7 100644 --- a/sdk/dotnet/Machine/ConfigurationApply.cs +++ b/sdk/dotnet/Machine/ConfigurationApply.cs @@ -58,6 +58,12 @@ public partial class ConfigurationApply : global::Pulumi.CustomResource [Output("node")] public Output Node { get; private set; } = null!; + /// + /// Actions to be taken on destroy, if *reset* is not set this is a no-op. + /// + [Output("onDestroy")] + public Output OnDestroy { get; private set; } = null!; + [Output("timeouts")] public Output Timeouts { get; private set; } = null!; @@ -165,6 +171,12 @@ public Input? MachineConfigurationInput [Input("node", required: true)] public Input Node { get; set; } = null!; + /// + /// Actions to be taken on destroy, if *reset* is not set this is a no-op. + /// + [Input("onDestroy")] + public Input? OnDestroy { get; set; } + [Input("timeouts")] public Input? Timeouts { get; set; } @@ -244,6 +256,12 @@ public Input? MachineConfigurationInput [Input("node")] public Input? Node { get; set; } + /// + /// Actions to be taken on destroy, if *reset* is not set this is a no-op. + /// + [Input("onDestroy")] + public Input? OnDestroy { get; set; } + [Input("timeouts")] public Input? Timeouts { get; set; } diff --git a/sdk/dotnet/Machine/GetConfiguration.cs b/sdk/dotnet/Machine/GetConfiguration.cs index ef5d3450..84cd0fb7 100644 --- a/sdk/dotnet/Machine/GetConfiguration.cs +++ b/sdk/dotnet/Machine/GetConfiguration.cs @@ -105,13 +105,13 @@ public List ConfigPatches } /// - /// Whether to generate documentation for the generated configuration + /// Whether to generate documentation for the generated configuration. Defaults to false /// [Input("docs")] public bool? Docs { get; set; } /// - /// Whether to generate examples for the generated configuration + /// Whether to generate examples for the generated configuration. Defaults to false /// [Input("examples")] public bool? Examples { get; set; } @@ -173,13 +173,13 @@ public InputList ConfigPatches } /// - /// Whether to generate documentation for the generated configuration + /// Whether to generate documentation for the generated configuration. Defaults to false /// [Input("docs")] public Input? Docs { get; set; } /// - /// Whether to generate examples for the generated configuration + /// Whether to generate examples for the generated configuration. Defaults to false /// [Input("examples")] public Input? Examples { get; set; } @@ -231,11 +231,11 @@ public sealed class GetConfigurationResult /// public readonly ImmutableArray ConfigPatches; /// - /// Whether to generate documentation for the generated configuration + /// Whether to generate documentation for the generated configuration. Defaults to false /// public readonly bool? Docs; /// - /// Whether to generate examples for the generated configuration + /// Whether to generate examples for the generated configuration. Defaults to false /// public readonly bool? Examples; /// diff --git a/sdk/dotnet/Machine/Inputs/ConfigurationApplyOnDestroyArgs.cs b/sdk/dotnet/Machine/Inputs/ConfigurationApplyOnDestroyArgs.cs new file mode 100644 index 00000000..4afff7d9 --- /dev/null +++ b/sdk/dotnet/Machine/Inputs/ConfigurationApplyOnDestroyArgs.cs @@ -0,0 +1,39 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.Machine.Inputs +{ + + public sealed class ConfigurationApplyOnDestroyArgs : global::Pulumi.ResourceArgs + { + /// + /// Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true + /// + [Input("graceful")] + public Input? Graceful { get; set; } + + /// + /// Reboot indicates whether node should reboot or halt after resetting. Default false + /// + [Input("reboot")] + public Input? Reboot { get; set; } + + /// + /// Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false + /// + [Input("reset")] + public Input? Reset { get; set; } + + public ConfigurationApplyOnDestroyArgs() + { + } + public static new ConfigurationApplyOnDestroyArgs Empty => new ConfigurationApplyOnDestroyArgs(); + } +} diff --git a/sdk/dotnet/Machine/Inputs/ConfigurationApplyOnDestroyGetArgs.cs b/sdk/dotnet/Machine/Inputs/ConfigurationApplyOnDestroyGetArgs.cs new file mode 100644 index 00000000..853a87b3 --- /dev/null +++ b/sdk/dotnet/Machine/Inputs/ConfigurationApplyOnDestroyGetArgs.cs @@ -0,0 +1,39 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.Machine.Inputs +{ + + public sealed class ConfigurationApplyOnDestroyGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true + /// + [Input("graceful")] + public Input? Graceful { get; set; } + + /// + /// Reboot indicates whether node should reboot or halt after resetting. Default false + /// + [Input("reboot")] + public Input? Reboot { get; set; } + + /// + /// Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false + /// + [Input("reset")] + public Input? Reset { get; set; } + + public ConfigurationApplyOnDestroyGetArgs() + { + } + public static new ConfigurationApplyOnDestroyGetArgs Empty => new ConfigurationApplyOnDestroyGetArgs(); + } +} diff --git a/sdk/dotnet/Machine/Inputs/TimeoutArgs.cs b/sdk/dotnet/Machine/Inputs/TimeoutArgs.cs index 3517d5ce..3071ecb8 100644 --- a/sdk/dotnet/Machine/Inputs/TimeoutArgs.cs +++ b/sdk/dotnet/Machine/Inputs/TimeoutArgs.cs @@ -19,6 +19,12 @@ public sealed class TimeoutArgs : global::Pulumi.ResourceArgs [Input("create")] public Input? Create { get; set; } + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + [Input("delete")] + public Input? Delete { get; set; } + /// /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). /// diff --git a/sdk/dotnet/Machine/Inputs/TimeoutGetArgs.cs b/sdk/dotnet/Machine/Inputs/TimeoutGetArgs.cs index 5f169615..ccf9b17e 100644 --- a/sdk/dotnet/Machine/Inputs/TimeoutGetArgs.cs +++ b/sdk/dotnet/Machine/Inputs/TimeoutGetArgs.cs @@ -19,6 +19,12 @@ public sealed class TimeoutGetArgs : global::Pulumi.ResourceArgs [Input("create")] public Input? Create { get; set; } + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + [Input("delete")] + public Input? Delete { get; set; } + /// /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). /// diff --git a/sdk/dotnet/Machine/Outputs/ConfigurationApplyOnDestroy.cs b/sdk/dotnet/Machine/Outputs/ConfigurationApplyOnDestroy.cs new file mode 100644 index 00000000..49186697 --- /dev/null +++ b/sdk/dotnet/Machine/Outputs/ConfigurationApplyOnDestroy.cs @@ -0,0 +1,43 @@ +// *** 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; +using Pulumi; + +namespace Pulumiverse.Talos.Machine.Outputs +{ + + [OutputType] + public sealed class ConfigurationApplyOnDestroy + { + /// + /// Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true + /// + public readonly bool? Graceful; + /// + /// Reboot indicates whether node should reboot or halt after resetting. Default false + /// + public readonly bool? Reboot; + /// + /// Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false + /// + public readonly bool? Reset; + + [OutputConstructor] + private ConfigurationApplyOnDestroy( + bool? graceful, + + bool? reboot, + + bool? reset) + { + Graceful = graceful; + Reboot = reboot; + Reset = reset; + } + } +} diff --git a/sdk/dotnet/Machine/Outputs/Timeout.cs b/sdk/dotnet/Machine/Outputs/Timeout.cs index 9ddb31bd..5a615e4e 100644 --- a/sdk/dotnet/Machine/Outputs/Timeout.cs +++ b/sdk/dotnet/Machine/Outputs/Timeout.cs @@ -19,6 +19,10 @@ public sealed class Timeout /// public readonly string? Create; /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + public readonly string? Delete; + /// /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). /// public readonly string? Update; @@ -27,9 +31,12 @@ public sealed class Timeout private Timeout( string? create, + string? delete, + string? update) { Create = create; + Delete = delete; Update = update; } } diff --git a/sdk/dotnet/Provider.cs b/sdk/dotnet/Provider.cs index f4a09825..cba175e7 100644 --- a/sdk/dotnet/Provider.cs +++ b/sdk/dotnet/Provider.cs @@ -19,6 +19,13 @@ namespace Pulumiverse.Talos [TalosResourceType("pulumi:providers:talos")] public partial class Provider : global::Pulumi.ProviderResource { + /// + /// The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev. + /// + [Output("imageFactoryUrl")] + public Output ImageFactoryUrl { get; private set; } = null!; + + /// /// Create a Provider resource with the given unique name, arguments, and options. /// @@ -47,6 +54,12 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? public sealed class ProviderArgs : global::Pulumi.ResourceArgs { + /// + /// The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev. + /// + [Input("imageFactoryUrl")] + public Input? ImageFactoryUrl { get; set; } + public ProviderArgs() { } diff --git a/sdk/go.mod b/sdk/go.mod index 23a21878..b6be3aee 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -64,6 +64,7 @@ require ( github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/skeema/knownhosts v1.2.2 // indirect + github.com/spf13/cast v1.4.1 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect diff --git a/sdk/go.sum b/sdk/go.sum index 99ae7b56..53d1012c 100644 --- a/sdk/go.sum +++ b/sdk/go.sum @@ -168,6 +168,8 @@ github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= 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/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= +github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= diff --git a/sdk/go/talos/cluster/getHealth.go b/sdk/go/talos/cluster/getHealth.go index 79fb2484..499c766a 100644 --- a/sdk/go/talos/cluster/getHealth.go +++ b/sdk/go/talos/cluster/getHealth.go @@ -11,7 +11,7 @@ import ( "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal" ) -// Checks the health of a Talos cluster +// Waits for the Talos cluster to be healthy. Can be used as a dependency before running other operations on the cluster. func GetHealth(ctx *pulumi.Context, args *GetHealthArgs, opts ...pulumi.InvokeOption) (*GetHealthResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) var rv GetHealthResult @@ -29,8 +29,10 @@ type GetHealthArgs struct { // List of control plane nodes to check for health. ControlPlaneNodes []string `pulumi:"controlPlaneNodes"` // endpoints to use for the health check client. Use at least one control plane endpoint. - Endpoints []string `pulumi:"endpoints"` - Timeouts *GetHealthTimeouts `pulumi:"timeouts"` + Endpoints []string `pulumi:"endpoints"` + // Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false. + SkipKubernetesChecks *bool `pulumi:"skipKubernetesChecks"` + Timeouts *GetHealthTimeouts `pulumi:"timeouts"` // List of worker nodes to check for health. WorkerNodes []string `pulumi:"workerNodes"` } @@ -44,8 +46,10 @@ type GetHealthResult struct { // endpoints to use for the health check client. Use at least one control plane endpoint. Endpoints []string `pulumi:"endpoints"` // The ID of this resource. - Id string `pulumi:"id"` - Timeouts *GetHealthTimeouts `pulumi:"timeouts"` + Id string `pulumi:"id"` + // Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false. + SkipKubernetesChecks *bool `pulumi:"skipKubernetesChecks"` + Timeouts *GetHealthTimeouts `pulumi:"timeouts"` // List of worker nodes to check for health. WorkerNodes []string `pulumi:"workerNodes"` } @@ -76,8 +80,10 @@ type GetHealthOutputArgs struct { // List of control plane nodes to check for health. ControlPlaneNodes pulumi.StringArrayInput `pulumi:"controlPlaneNodes"` // endpoints to use for the health check client. Use at least one control plane endpoint. - Endpoints pulumi.StringArrayInput `pulumi:"endpoints"` - Timeouts GetHealthTimeoutsPtrInput `pulumi:"timeouts"` + Endpoints pulumi.StringArrayInput `pulumi:"endpoints"` + // Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false. + SkipKubernetesChecks pulumi.BoolPtrInput `pulumi:"skipKubernetesChecks"` + Timeouts GetHealthTimeoutsPtrInput `pulumi:"timeouts"` // List of worker nodes to check for health. WorkerNodes pulumi.StringArrayInput `pulumi:"workerNodes"` } @@ -121,6 +127,11 @@ func (o GetHealthResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v GetHealthResult) string { return v.Id }).(pulumi.StringOutput) } +// Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false. +func (o GetHealthResultOutput) SkipKubernetesChecks() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetHealthResult) *bool { return v.SkipKubernetesChecks }).(pulumi.BoolPtrOutput) +} + func (o GetHealthResultOutput) Timeouts() GetHealthTimeoutsPtrOutput { return o.ApplyT(func(v GetHealthResult) *GetHealthTimeouts { return v.Timeouts }).(GetHealthTimeoutsPtrOutput) } diff --git a/sdk/go/talos/cluster/getKubeconfig.go b/sdk/go/talos/cluster/getKubeconfig.go index 415db714..2425e062 100644 --- a/sdk/go/talos/cluster/getKubeconfig.go +++ b/sdk/go/talos/cluster/getKubeconfig.go @@ -12,9 +12,9 @@ import ( ) // Retrieves the kubeconfig for a Talos cluster -func GetKubeconfig(ctx *pulumi.Context, args *GetKubeconfigArgs, opts ...pulumi.InvokeOption) (*GetKubeconfigResult, error) { +func LookupKubeconfig(ctx *pulumi.Context, args *LookupKubeconfigArgs, opts ...pulumi.InvokeOption) (*LookupKubeconfigResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetKubeconfigResult + var rv LookupKubeconfigResult err := ctx.Invoke("talos:cluster/getKubeconfig:getKubeconfig", args, &rv, opts...) if err != nil { return nil, err @@ -23,7 +23,7 @@ func GetKubeconfig(ctx *pulumi.Context, args *GetKubeconfigArgs, opts ...pulumi. } // A collection of arguments for invoking getKubeconfig. -type GetKubeconfigArgs struct { +type LookupKubeconfigArgs struct { // The client configuration data ClientConfiguration GetKubeconfigClientConfiguration `pulumi:"clientConfiguration"` // endpoint to use for the talosclient. If not set, the node value will be used @@ -38,7 +38,7 @@ type GetKubeconfigArgs struct { } // A collection of values returned by getKubeconfig. -type GetKubeconfigResult struct { +type LookupKubeconfigResult struct { // The client configuration data ClientConfiguration GetKubeconfigClientConfiguration `pulumi:"clientConfiguration"` // endpoint to use for the talosclient. If not set, the node value will be used @@ -58,27 +58,27 @@ type GetKubeconfigResult struct { Wait *bool `pulumi:"wait"` } -func GetKubeconfigOutput(ctx *pulumi.Context, args GetKubeconfigOutputArgs, opts ...pulumi.InvokeOption) GetKubeconfigResultOutput { +func LookupKubeconfigOutput(ctx *pulumi.Context, args LookupKubeconfigOutputArgs, opts ...pulumi.InvokeOption) LookupKubeconfigResultOutput { return pulumi.ToOutputWithContext(context.Background(), args). - ApplyT(func(v interface{}) (GetKubeconfigResultOutput, error) { - args := v.(GetKubeconfigArgs) + ApplyT(func(v interface{}) (LookupKubeconfigResultOutput, error) { + args := v.(LookupKubeconfigArgs) opts = internal.PkgInvokeDefaultOpts(opts) - var rv GetKubeconfigResult + var rv LookupKubeconfigResult secret, err := ctx.InvokePackageRaw("talos:cluster/getKubeconfig:getKubeconfig", args, &rv, "", opts...) if err != nil { - return GetKubeconfigResultOutput{}, err + return LookupKubeconfigResultOutput{}, err } - output := pulumi.ToOutput(rv).(GetKubeconfigResultOutput) + output := pulumi.ToOutput(rv).(LookupKubeconfigResultOutput) if secret { - return pulumi.ToSecret(output).(GetKubeconfigResultOutput), nil + return pulumi.ToSecret(output).(LookupKubeconfigResultOutput), nil } return output, nil - }).(GetKubeconfigResultOutput) + }).(LookupKubeconfigResultOutput) } // A collection of arguments for invoking getKubeconfig. -type GetKubeconfigOutputArgs struct { +type LookupKubeconfigOutputArgs struct { // The client configuration data ClientConfiguration GetKubeconfigClientConfigurationInput `pulumi:"clientConfiguration"` // endpoint to use for the talosclient. If not set, the node value will be used @@ -92,68 +92,68 @@ type GetKubeconfigOutputArgs struct { Wait pulumi.BoolPtrInput `pulumi:"wait"` } -func (GetKubeconfigOutputArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GetKubeconfigArgs)(nil)).Elem() +func (LookupKubeconfigOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupKubeconfigArgs)(nil)).Elem() } // A collection of values returned by getKubeconfig. -type GetKubeconfigResultOutput struct{ *pulumi.OutputState } +type LookupKubeconfigResultOutput struct{ *pulumi.OutputState } -func (GetKubeconfigResultOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GetKubeconfigResult)(nil)).Elem() +func (LookupKubeconfigResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupKubeconfigResult)(nil)).Elem() } -func (o GetKubeconfigResultOutput) ToGetKubeconfigResultOutput() GetKubeconfigResultOutput { +func (o LookupKubeconfigResultOutput) ToLookupKubeconfigResultOutput() LookupKubeconfigResultOutput { return o } -func (o GetKubeconfigResultOutput) ToGetKubeconfigResultOutputWithContext(ctx context.Context) GetKubeconfigResultOutput { +func (o LookupKubeconfigResultOutput) ToLookupKubeconfigResultOutputWithContext(ctx context.Context) LookupKubeconfigResultOutput { return o } // The client configuration data -func (o GetKubeconfigResultOutput) ClientConfiguration() GetKubeconfigClientConfigurationOutput { - return o.ApplyT(func(v GetKubeconfigResult) GetKubeconfigClientConfiguration { return v.ClientConfiguration }).(GetKubeconfigClientConfigurationOutput) +func (o LookupKubeconfigResultOutput) ClientConfiguration() GetKubeconfigClientConfigurationOutput { + return o.ApplyT(func(v LookupKubeconfigResult) GetKubeconfigClientConfiguration { return v.ClientConfiguration }).(GetKubeconfigClientConfigurationOutput) } // endpoint to use for the talosclient. If not set, the node value will be used -func (o GetKubeconfigResultOutput) Endpoint() pulumi.StringOutput { - return o.ApplyT(func(v GetKubeconfigResult) string { return v.Endpoint }).(pulumi.StringOutput) +func (o LookupKubeconfigResultOutput) Endpoint() pulumi.StringOutput { + return o.ApplyT(func(v LookupKubeconfigResult) string { return v.Endpoint }).(pulumi.StringOutput) } // The ID of this resource. -func (o GetKubeconfigResultOutput) Id() pulumi.StringOutput { - return o.ApplyT(func(v GetKubeconfigResult) string { return v.Id }).(pulumi.StringOutput) +func (o LookupKubeconfigResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupKubeconfigResult) string { return v.Id }).(pulumi.StringOutput) } // The raw kubeconfig -func (o GetKubeconfigResultOutput) KubeconfigRaw() pulumi.StringOutput { - return o.ApplyT(func(v GetKubeconfigResult) string { return v.KubeconfigRaw }).(pulumi.StringOutput) +func (o LookupKubeconfigResultOutput) KubeconfigRaw() pulumi.StringOutput { + return o.ApplyT(func(v LookupKubeconfigResult) string { return v.KubeconfigRaw }).(pulumi.StringOutput) } // The kubernetes client configuration -func (o GetKubeconfigResultOutput) KubernetesClientConfiguration() GetKubeconfigKubernetesClientConfigurationOutput { - return o.ApplyT(func(v GetKubeconfigResult) GetKubeconfigKubernetesClientConfiguration { +func (o LookupKubeconfigResultOutput) KubernetesClientConfiguration() GetKubeconfigKubernetesClientConfigurationOutput { + return o.ApplyT(func(v LookupKubeconfigResult) GetKubeconfigKubernetesClientConfiguration { return v.KubernetesClientConfiguration }).(GetKubeconfigKubernetesClientConfigurationOutput) } // controlplane node to retrieve the kubeconfig from -func (o GetKubeconfigResultOutput) Node() pulumi.StringOutput { - return o.ApplyT(func(v GetKubeconfigResult) string { return v.Node }).(pulumi.StringOutput) +func (o LookupKubeconfigResultOutput) Node() pulumi.StringOutput { + return o.ApplyT(func(v LookupKubeconfigResult) string { return v.Node }).(pulumi.StringOutput) } -func (o GetKubeconfigResultOutput) Timeouts() GetKubeconfigTimeoutsPtrOutput { - return o.ApplyT(func(v GetKubeconfigResult) *GetKubeconfigTimeouts { return v.Timeouts }).(GetKubeconfigTimeoutsPtrOutput) +func (o LookupKubeconfigResultOutput) Timeouts() GetKubeconfigTimeoutsPtrOutput { + return o.ApplyT(func(v LookupKubeconfigResult) *GetKubeconfigTimeouts { return v.Timeouts }).(GetKubeconfigTimeoutsPtrOutput) } // Wait for the kubernetes api to be available // // Deprecated: This attribute is deprecated and no-op. Will be removed in a future version. Use cluster.getHealth instead. -func (o GetKubeconfigResultOutput) Wait() pulumi.BoolPtrOutput { - return o.ApplyT(func(v GetKubeconfigResult) *bool { return v.Wait }).(pulumi.BoolPtrOutput) +func (o LookupKubeconfigResultOutput) Wait() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupKubeconfigResult) *bool { return v.Wait }).(pulumi.BoolPtrOutput) } func init() { - pulumi.RegisterOutputType(GetKubeconfigResultOutput{}) + pulumi.RegisterOutputType(LookupKubeconfigResultOutput{}) } diff --git a/sdk/go/talos/cluster/init.go b/sdk/go/talos/cluster/init.go new file mode 100644 index 00000000..ff00f2f2 --- /dev/null +++ b/sdk/go/talos/cluster/init.go @@ -0,0 +1,44 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cluster + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "talos:cluster/kubeconfig:Kubeconfig": + r = &Kubeconfig{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := internal.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "talos", + "cluster/kubeconfig", + &module{version}, + ) +} diff --git a/sdk/go/talos/cluster/kubeconfig.go b/sdk/go/talos/cluster/kubeconfig.go new file mode 100644 index 00000000..1ffc1f3c --- /dev/null +++ b/sdk/go/talos/cluster/kubeconfig.go @@ -0,0 +1,289 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cluster + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal" +) + +// Retrieves the kubeconfig for a Talos cluster +type Kubeconfig struct { + pulumi.CustomResourceState + + // The client configuration data + ClientConfiguration KubeconfigClientConfigurationOutput `pulumi:"clientConfiguration"` + // endpoint to use for the talosclient. If not set, the node value will be used + Endpoint pulumi.StringOutput `pulumi:"endpoint"` + // The raw kubeconfig + KubeconfigRaw pulumi.StringOutput `pulumi:"kubeconfigRaw"` + // The kubernetes client configuration + KubernetesClientConfiguration KubeconfigKubernetesClientConfigurationOutput `pulumi:"kubernetesClientConfiguration"` + // controlplane node to retrieve the kubeconfig from + Node pulumi.StringOutput `pulumi:"node"` + Timeouts KubeconfigTimeoutsPtrOutput `pulumi:"timeouts"` +} + +// NewKubeconfig registers a new resource with the given unique name, arguments, and options. +func NewKubeconfig(ctx *pulumi.Context, + name string, args *KubeconfigArgs, opts ...pulumi.ResourceOption) (*Kubeconfig, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ClientConfiguration == nil { + return nil, errors.New("invalid value for required argument 'ClientConfiguration'") + } + if args.Node == nil { + return nil, errors.New("invalid value for required argument 'Node'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "kubeconfigRaw", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource Kubeconfig + err := ctx.RegisterResource("talos:cluster/kubeconfig:Kubeconfig", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetKubeconfig gets an existing Kubeconfig resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetKubeconfig(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *KubeconfigState, opts ...pulumi.ResourceOption) (*Kubeconfig, error) { + var resource Kubeconfig + err := ctx.ReadResource("talos:cluster/kubeconfig:Kubeconfig", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Kubeconfig resources. +type kubeconfigState struct { + // The client configuration data + ClientConfiguration *KubeconfigClientConfiguration `pulumi:"clientConfiguration"` + // endpoint to use for the talosclient. If not set, the node value will be used + Endpoint *string `pulumi:"endpoint"` + // The raw kubeconfig + KubeconfigRaw *string `pulumi:"kubeconfigRaw"` + // The kubernetes client configuration + KubernetesClientConfiguration *KubeconfigKubernetesClientConfiguration `pulumi:"kubernetesClientConfiguration"` + // controlplane node to retrieve the kubeconfig from + Node *string `pulumi:"node"` + Timeouts *KubeconfigTimeouts `pulumi:"timeouts"` +} + +type KubeconfigState struct { + // The client configuration data + ClientConfiguration KubeconfigClientConfigurationPtrInput + // endpoint to use for the talosclient. If not set, the node value will be used + Endpoint pulumi.StringPtrInput + // The raw kubeconfig + KubeconfigRaw pulumi.StringPtrInput + // The kubernetes client configuration + KubernetesClientConfiguration KubeconfigKubernetesClientConfigurationPtrInput + // controlplane node to retrieve the kubeconfig from + Node pulumi.StringPtrInput + Timeouts KubeconfigTimeoutsPtrInput +} + +func (KubeconfigState) ElementType() reflect.Type { + return reflect.TypeOf((*kubeconfigState)(nil)).Elem() +} + +type kubeconfigArgs struct { + // The client configuration data + ClientConfiguration KubeconfigClientConfiguration `pulumi:"clientConfiguration"` + // endpoint to use for the talosclient. If not set, the node value will be used + Endpoint *string `pulumi:"endpoint"` + // controlplane node to retrieve the kubeconfig from + Node string `pulumi:"node"` + Timeouts *KubeconfigTimeouts `pulumi:"timeouts"` +} + +// The set of arguments for constructing a Kubeconfig resource. +type KubeconfigArgs struct { + // The client configuration data + ClientConfiguration KubeconfigClientConfigurationInput + // endpoint to use for the talosclient. If not set, the node value will be used + Endpoint pulumi.StringPtrInput + // controlplane node to retrieve the kubeconfig from + Node pulumi.StringInput + Timeouts KubeconfigTimeoutsPtrInput +} + +func (KubeconfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*kubeconfigArgs)(nil)).Elem() +} + +type KubeconfigInput interface { + pulumi.Input + + ToKubeconfigOutput() KubeconfigOutput + ToKubeconfigOutputWithContext(ctx context.Context) KubeconfigOutput +} + +func (*Kubeconfig) ElementType() reflect.Type { + return reflect.TypeOf((**Kubeconfig)(nil)).Elem() +} + +func (i *Kubeconfig) ToKubeconfigOutput() KubeconfigOutput { + return i.ToKubeconfigOutputWithContext(context.Background()) +} + +func (i *Kubeconfig) ToKubeconfigOutputWithContext(ctx context.Context) KubeconfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(KubeconfigOutput) +} + +// KubeconfigArrayInput is an input type that accepts KubeconfigArray and KubeconfigArrayOutput values. +// You can construct a concrete instance of `KubeconfigArrayInput` via: +// +// KubeconfigArray{ KubeconfigArgs{...} } +type KubeconfigArrayInput interface { + pulumi.Input + + ToKubeconfigArrayOutput() KubeconfigArrayOutput + ToKubeconfigArrayOutputWithContext(context.Context) KubeconfigArrayOutput +} + +type KubeconfigArray []KubeconfigInput + +func (KubeconfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Kubeconfig)(nil)).Elem() +} + +func (i KubeconfigArray) ToKubeconfigArrayOutput() KubeconfigArrayOutput { + return i.ToKubeconfigArrayOutputWithContext(context.Background()) +} + +func (i KubeconfigArray) ToKubeconfigArrayOutputWithContext(ctx context.Context) KubeconfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(KubeconfigArrayOutput) +} + +// KubeconfigMapInput is an input type that accepts KubeconfigMap and KubeconfigMapOutput values. +// You can construct a concrete instance of `KubeconfigMapInput` via: +// +// KubeconfigMap{ "key": KubeconfigArgs{...} } +type KubeconfigMapInput interface { + pulumi.Input + + ToKubeconfigMapOutput() KubeconfigMapOutput + ToKubeconfigMapOutputWithContext(context.Context) KubeconfigMapOutput +} + +type KubeconfigMap map[string]KubeconfigInput + +func (KubeconfigMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Kubeconfig)(nil)).Elem() +} + +func (i KubeconfigMap) ToKubeconfigMapOutput() KubeconfigMapOutput { + return i.ToKubeconfigMapOutputWithContext(context.Background()) +} + +func (i KubeconfigMap) ToKubeconfigMapOutputWithContext(ctx context.Context) KubeconfigMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(KubeconfigMapOutput) +} + +type KubeconfigOutput struct{ *pulumi.OutputState } + +func (KubeconfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Kubeconfig)(nil)).Elem() +} + +func (o KubeconfigOutput) ToKubeconfigOutput() KubeconfigOutput { + return o +} + +func (o KubeconfigOutput) ToKubeconfigOutputWithContext(ctx context.Context) KubeconfigOutput { + return o +} + +// The client configuration data +func (o KubeconfigOutput) ClientConfiguration() KubeconfigClientConfigurationOutput { + return o.ApplyT(func(v *Kubeconfig) KubeconfigClientConfigurationOutput { return v.ClientConfiguration }).(KubeconfigClientConfigurationOutput) +} + +// endpoint to use for the talosclient. If not set, the node value will be used +func (o KubeconfigOutput) Endpoint() pulumi.StringOutput { + return o.ApplyT(func(v *Kubeconfig) pulumi.StringOutput { return v.Endpoint }).(pulumi.StringOutput) +} + +// The raw kubeconfig +func (o KubeconfigOutput) KubeconfigRaw() pulumi.StringOutput { + return o.ApplyT(func(v *Kubeconfig) pulumi.StringOutput { return v.KubeconfigRaw }).(pulumi.StringOutput) +} + +// The kubernetes client configuration +func (o KubeconfigOutput) KubernetesClientConfiguration() KubeconfigKubernetesClientConfigurationOutput { + return o.ApplyT(func(v *Kubeconfig) KubeconfigKubernetesClientConfigurationOutput { + return v.KubernetesClientConfiguration + }).(KubeconfigKubernetesClientConfigurationOutput) +} + +// controlplane node to retrieve the kubeconfig from +func (o KubeconfigOutput) Node() pulumi.StringOutput { + return o.ApplyT(func(v *Kubeconfig) pulumi.StringOutput { return v.Node }).(pulumi.StringOutput) +} + +func (o KubeconfigOutput) Timeouts() KubeconfigTimeoutsPtrOutput { + return o.ApplyT(func(v *Kubeconfig) KubeconfigTimeoutsPtrOutput { return v.Timeouts }).(KubeconfigTimeoutsPtrOutput) +} + +type KubeconfigArrayOutput struct{ *pulumi.OutputState } + +func (KubeconfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Kubeconfig)(nil)).Elem() +} + +func (o KubeconfigArrayOutput) ToKubeconfigArrayOutput() KubeconfigArrayOutput { + return o +} + +func (o KubeconfigArrayOutput) ToKubeconfigArrayOutputWithContext(ctx context.Context) KubeconfigArrayOutput { + return o +} + +func (o KubeconfigArrayOutput) Index(i pulumi.IntInput) KubeconfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Kubeconfig { + return vs[0].([]*Kubeconfig)[vs[1].(int)] + }).(KubeconfigOutput) +} + +type KubeconfigMapOutput struct{ *pulumi.OutputState } + +func (KubeconfigMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Kubeconfig)(nil)).Elem() +} + +func (o KubeconfigMapOutput) ToKubeconfigMapOutput() KubeconfigMapOutput { + return o +} + +func (o KubeconfigMapOutput) ToKubeconfigMapOutputWithContext(ctx context.Context) KubeconfigMapOutput { + return o +} + +func (o KubeconfigMapOutput) MapIndex(k pulumi.StringInput) KubeconfigOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Kubeconfig { + return vs[0].(map[string]*Kubeconfig)[vs[1].(string)] + }).(KubeconfigOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigInput)(nil)).Elem(), &Kubeconfig{}) + pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigArrayInput)(nil)).Elem(), KubeconfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigMapInput)(nil)).Elem(), KubeconfigMap{}) + pulumi.RegisterOutputType(KubeconfigOutput{}) + pulumi.RegisterOutputType(KubeconfigArrayOutput{}) + pulumi.RegisterOutputType(KubeconfigMapOutput{}) +} diff --git a/sdk/go/talos/cluster/pulumiTypes.go b/sdk/go/talos/cluster/pulumiTypes.go index 93d3ff8a..26bc8a11 100644 --- a/sdk/go/talos/cluster/pulumiTypes.go +++ b/sdk/go/talos/cluster/pulumiTypes.go @@ -13,6 +13,531 @@ import ( var _ = internal.GetEnvOrDefault +type KubeconfigClientConfiguration struct { + // The client CA certificate + CaCertificate string `pulumi:"caCertificate"` + // The client certificate + ClientCertificate string `pulumi:"clientCertificate"` + // The client key + ClientKey string `pulumi:"clientKey"` +} + +// KubeconfigClientConfigurationInput is an input type that accepts KubeconfigClientConfigurationArgs and KubeconfigClientConfigurationOutput values. +// You can construct a concrete instance of `KubeconfigClientConfigurationInput` via: +// +// KubeconfigClientConfigurationArgs{...} +type KubeconfigClientConfigurationInput interface { + pulumi.Input + + ToKubeconfigClientConfigurationOutput() KubeconfigClientConfigurationOutput + ToKubeconfigClientConfigurationOutputWithContext(context.Context) KubeconfigClientConfigurationOutput +} + +type KubeconfigClientConfigurationArgs struct { + // The client CA certificate + CaCertificate pulumi.StringInput `pulumi:"caCertificate"` + // The client certificate + ClientCertificate pulumi.StringInput `pulumi:"clientCertificate"` + // The client key + ClientKey pulumi.StringInput `pulumi:"clientKey"` +} + +func (KubeconfigClientConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*KubeconfigClientConfiguration)(nil)).Elem() +} + +func (i KubeconfigClientConfigurationArgs) ToKubeconfigClientConfigurationOutput() KubeconfigClientConfigurationOutput { + return i.ToKubeconfigClientConfigurationOutputWithContext(context.Background()) +} + +func (i KubeconfigClientConfigurationArgs) ToKubeconfigClientConfigurationOutputWithContext(ctx context.Context) KubeconfigClientConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(KubeconfigClientConfigurationOutput) +} + +func (i KubeconfigClientConfigurationArgs) ToKubeconfigClientConfigurationPtrOutput() KubeconfigClientConfigurationPtrOutput { + return i.ToKubeconfigClientConfigurationPtrOutputWithContext(context.Background()) +} + +func (i KubeconfigClientConfigurationArgs) ToKubeconfigClientConfigurationPtrOutputWithContext(ctx context.Context) KubeconfigClientConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KubeconfigClientConfigurationOutput).ToKubeconfigClientConfigurationPtrOutputWithContext(ctx) +} + +// KubeconfigClientConfigurationPtrInput is an input type that accepts KubeconfigClientConfigurationArgs, KubeconfigClientConfigurationPtr and KubeconfigClientConfigurationPtrOutput values. +// You can construct a concrete instance of `KubeconfigClientConfigurationPtrInput` via: +// +// KubeconfigClientConfigurationArgs{...} +// +// or: +// +// nil +type KubeconfigClientConfigurationPtrInput interface { + pulumi.Input + + ToKubeconfigClientConfigurationPtrOutput() KubeconfigClientConfigurationPtrOutput + ToKubeconfigClientConfigurationPtrOutputWithContext(context.Context) KubeconfigClientConfigurationPtrOutput +} + +type kubeconfigClientConfigurationPtrType KubeconfigClientConfigurationArgs + +func KubeconfigClientConfigurationPtr(v *KubeconfigClientConfigurationArgs) KubeconfigClientConfigurationPtrInput { + return (*kubeconfigClientConfigurationPtrType)(v) +} + +func (*kubeconfigClientConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**KubeconfigClientConfiguration)(nil)).Elem() +} + +func (i *kubeconfigClientConfigurationPtrType) ToKubeconfigClientConfigurationPtrOutput() KubeconfigClientConfigurationPtrOutput { + return i.ToKubeconfigClientConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *kubeconfigClientConfigurationPtrType) ToKubeconfigClientConfigurationPtrOutputWithContext(ctx context.Context) KubeconfigClientConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KubeconfigClientConfigurationPtrOutput) +} + +type KubeconfigClientConfigurationOutput struct{ *pulumi.OutputState } + +func (KubeconfigClientConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KubeconfigClientConfiguration)(nil)).Elem() +} + +func (o KubeconfigClientConfigurationOutput) ToKubeconfigClientConfigurationOutput() KubeconfigClientConfigurationOutput { + return o +} + +func (o KubeconfigClientConfigurationOutput) ToKubeconfigClientConfigurationOutputWithContext(ctx context.Context) KubeconfigClientConfigurationOutput { + return o +} + +func (o KubeconfigClientConfigurationOutput) ToKubeconfigClientConfigurationPtrOutput() KubeconfigClientConfigurationPtrOutput { + return o.ToKubeconfigClientConfigurationPtrOutputWithContext(context.Background()) +} + +func (o KubeconfigClientConfigurationOutput) ToKubeconfigClientConfigurationPtrOutputWithContext(ctx context.Context) KubeconfigClientConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v KubeconfigClientConfiguration) *KubeconfigClientConfiguration { + return &v + }).(KubeconfigClientConfigurationPtrOutput) +} + +// The client CA certificate +func (o KubeconfigClientConfigurationOutput) CaCertificate() pulumi.StringOutput { + return o.ApplyT(func(v KubeconfigClientConfiguration) string { return v.CaCertificate }).(pulumi.StringOutput) +} + +// The client certificate +func (o KubeconfigClientConfigurationOutput) ClientCertificate() pulumi.StringOutput { + return o.ApplyT(func(v KubeconfigClientConfiguration) string { return v.ClientCertificate }).(pulumi.StringOutput) +} + +// The client key +func (o KubeconfigClientConfigurationOutput) ClientKey() pulumi.StringOutput { + return o.ApplyT(func(v KubeconfigClientConfiguration) string { return v.ClientKey }).(pulumi.StringOutput) +} + +type KubeconfigClientConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (KubeconfigClientConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KubeconfigClientConfiguration)(nil)).Elem() +} + +func (o KubeconfigClientConfigurationPtrOutput) ToKubeconfigClientConfigurationPtrOutput() KubeconfigClientConfigurationPtrOutput { + return o +} + +func (o KubeconfigClientConfigurationPtrOutput) ToKubeconfigClientConfigurationPtrOutputWithContext(ctx context.Context) KubeconfigClientConfigurationPtrOutput { + return o +} + +func (o KubeconfigClientConfigurationPtrOutput) Elem() KubeconfigClientConfigurationOutput { + return o.ApplyT(func(v *KubeconfigClientConfiguration) KubeconfigClientConfiguration { + if v != nil { + return *v + } + var ret KubeconfigClientConfiguration + return ret + }).(KubeconfigClientConfigurationOutput) +} + +// The client CA certificate +func (o KubeconfigClientConfigurationPtrOutput) CaCertificate() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KubeconfigClientConfiguration) *string { + if v == nil { + return nil + } + return &v.CaCertificate + }).(pulumi.StringPtrOutput) +} + +// The client certificate +func (o KubeconfigClientConfigurationPtrOutput) ClientCertificate() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KubeconfigClientConfiguration) *string { + if v == nil { + return nil + } + return &v.ClientCertificate + }).(pulumi.StringPtrOutput) +} + +// The client key +func (o KubeconfigClientConfigurationPtrOutput) ClientKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KubeconfigClientConfiguration) *string { + if v == nil { + return nil + } + return &v.ClientKey + }).(pulumi.StringPtrOutput) +} + +type KubeconfigKubernetesClientConfiguration struct { + // The kubernetes CA certificate + CaCertificate *string `pulumi:"caCertificate"` + // The kubernetes client certificate + ClientCertificate *string `pulumi:"clientCertificate"` + // The kubernetes client key + ClientKey *string `pulumi:"clientKey"` + // The kubernetes host + Host *string `pulumi:"host"` +} + +// KubeconfigKubernetesClientConfigurationInput is an input type that accepts KubeconfigKubernetesClientConfigurationArgs and KubeconfigKubernetesClientConfigurationOutput values. +// You can construct a concrete instance of `KubeconfigKubernetesClientConfigurationInput` via: +// +// KubeconfigKubernetesClientConfigurationArgs{...} +type KubeconfigKubernetesClientConfigurationInput interface { + pulumi.Input + + ToKubeconfigKubernetesClientConfigurationOutput() KubeconfigKubernetesClientConfigurationOutput + ToKubeconfigKubernetesClientConfigurationOutputWithContext(context.Context) KubeconfigKubernetesClientConfigurationOutput +} + +type KubeconfigKubernetesClientConfigurationArgs struct { + // The kubernetes CA certificate + CaCertificate pulumi.StringPtrInput `pulumi:"caCertificate"` + // The kubernetes client certificate + ClientCertificate pulumi.StringPtrInput `pulumi:"clientCertificate"` + // The kubernetes client key + ClientKey pulumi.StringPtrInput `pulumi:"clientKey"` + // The kubernetes host + Host pulumi.StringPtrInput `pulumi:"host"` +} + +func (KubeconfigKubernetesClientConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*KubeconfigKubernetesClientConfiguration)(nil)).Elem() +} + +func (i KubeconfigKubernetesClientConfigurationArgs) ToKubeconfigKubernetesClientConfigurationOutput() KubeconfigKubernetesClientConfigurationOutput { + return i.ToKubeconfigKubernetesClientConfigurationOutputWithContext(context.Background()) +} + +func (i KubeconfigKubernetesClientConfigurationArgs) ToKubeconfigKubernetesClientConfigurationOutputWithContext(ctx context.Context) KubeconfigKubernetesClientConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(KubeconfigKubernetesClientConfigurationOutput) +} + +func (i KubeconfigKubernetesClientConfigurationArgs) ToKubeconfigKubernetesClientConfigurationPtrOutput() KubeconfigKubernetesClientConfigurationPtrOutput { + return i.ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(context.Background()) +} + +func (i KubeconfigKubernetesClientConfigurationArgs) ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(ctx context.Context) KubeconfigKubernetesClientConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KubeconfigKubernetesClientConfigurationOutput).ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(ctx) +} + +// KubeconfigKubernetesClientConfigurationPtrInput is an input type that accepts KubeconfigKubernetesClientConfigurationArgs, KubeconfigKubernetesClientConfigurationPtr and KubeconfigKubernetesClientConfigurationPtrOutput values. +// You can construct a concrete instance of `KubeconfigKubernetesClientConfigurationPtrInput` via: +// +// KubeconfigKubernetesClientConfigurationArgs{...} +// +// or: +// +// nil +type KubeconfigKubernetesClientConfigurationPtrInput interface { + pulumi.Input + + ToKubeconfigKubernetesClientConfigurationPtrOutput() KubeconfigKubernetesClientConfigurationPtrOutput + ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(context.Context) KubeconfigKubernetesClientConfigurationPtrOutput +} + +type kubeconfigKubernetesClientConfigurationPtrType KubeconfigKubernetesClientConfigurationArgs + +func KubeconfigKubernetesClientConfigurationPtr(v *KubeconfigKubernetesClientConfigurationArgs) KubeconfigKubernetesClientConfigurationPtrInput { + return (*kubeconfigKubernetesClientConfigurationPtrType)(v) +} + +func (*kubeconfigKubernetesClientConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**KubeconfigKubernetesClientConfiguration)(nil)).Elem() +} + +func (i *kubeconfigKubernetesClientConfigurationPtrType) ToKubeconfigKubernetesClientConfigurationPtrOutput() KubeconfigKubernetesClientConfigurationPtrOutput { + return i.ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *kubeconfigKubernetesClientConfigurationPtrType) ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(ctx context.Context) KubeconfigKubernetesClientConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KubeconfigKubernetesClientConfigurationPtrOutput) +} + +type KubeconfigKubernetesClientConfigurationOutput struct{ *pulumi.OutputState } + +func (KubeconfigKubernetesClientConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KubeconfigKubernetesClientConfiguration)(nil)).Elem() +} + +func (o KubeconfigKubernetesClientConfigurationOutput) ToKubeconfigKubernetesClientConfigurationOutput() KubeconfigKubernetesClientConfigurationOutput { + return o +} + +func (o KubeconfigKubernetesClientConfigurationOutput) ToKubeconfigKubernetesClientConfigurationOutputWithContext(ctx context.Context) KubeconfigKubernetesClientConfigurationOutput { + return o +} + +func (o KubeconfigKubernetesClientConfigurationOutput) ToKubeconfigKubernetesClientConfigurationPtrOutput() KubeconfigKubernetesClientConfigurationPtrOutput { + return o.ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(context.Background()) +} + +func (o KubeconfigKubernetesClientConfigurationOutput) ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(ctx context.Context) KubeconfigKubernetesClientConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v KubeconfigKubernetesClientConfiguration) *KubeconfigKubernetesClientConfiguration { + return &v + }).(KubeconfigKubernetesClientConfigurationPtrOutput) +} + +// The kubernetes CA certificate +func (o KubeconfigKubernetesClientConfigurationOutput) CaCertificate() pulumi.StringPtrOutput { + return o.ApplyT(func(v KubeconfigKubernetesClientConfiguration) *string { return v.CaCertificate }).(pulumi.StringPtrOutput) +} + +// The kubernetes client certificate +func (o KubeconfigKubernetesClientConfigurationOutput) ClientCertificate() pulumi.StringPtrOutput { + return o.ApplyT(func(v KubeconfigKubernetesClientConfiguration) *string { return v.ClientCertificate }).(pulumi.StringPtrOutput) +} + +// The kubernetes client key +func (o KubeconfigKubernetesClientConfigurationOutput) ClientKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v KubeconfigKubernetesClientConfiguration) *string { return v.ClientKey }).(pulumi.StringPtrOutput) +} + +// The kubernetes host +func (o KubeconfigKubernetesClientConfigurationOutput) Host() pulumi.StringPtrOutput { + return o.ApplyT(func(v KubeconfigKubernetesClientConfiguration) *string { return v.Host }).(pulumi.StringPtrOutput) +} + +type KubeconfigKubernetesClientConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (KubeconfigKubernetesClientConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KubeconfigKubernetesClientConfiguration)(nil)).Elem() +} + +func (o KubeconfigKubernetesClientConfigurationPtrOutput) ToKubeconfigKubernetesClientConfigurationPtrOutput() KubeconfigKubernetesClientConfigurationPtrOutput { + return o +} + +func (o KubeconfigKubernetesClientConfigurationPtrOutput) ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(ctx context.Context) KubeconfigKubernetesClientConfigurationPtrOutput { + return o +} + +func (o KubeconfigKubernetesClientConfigurationPtrOutput) Elem() KubeconfigKubernetesClientConfigurationOutput { + return o.ApplyT(func(v *KubeconfigKubernetesClientConfiguration) KubeconfigKubernetesClientConfiguration { + if v != nil { + return *v + } + var ret KubeconfigKubernetesClientConfiguration + return ret + }).(KubeconfigKubernetesClientConfigurationOutput) +} + +// The kubernetes CA certificate +func (o KubeconfigKubernetesClientConfigurationPtrOutput) CaCertificate() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KubeconfigKubernetesClientConfiguration) *string { + if v == nil { + return nil + } + return v.CaCertificate + }).(pulumi.StringPtrOutput) +} + +// The kubernetes client certificate +func (o KubeconfigKubernetesClientConfigurationPtrOutput) ClientCertificate() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KubeconfigKubernetesClientConfiguration) *string { + if v == nil { + return nil + } + return v.ClientCertificate + }).(pulumi.StringPtrOutput) +} + +// The kubernetes client key +func (o KubeconfigKubernetesClientConfigurationPtrOutput) ClientKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KubeconfigKubernetesClientConfiguration) *string { + if v == nil { + return nil + } + return v.ClientKey + }).(pulumi.StringPtrOutput) +} + +// The kubernetes host +func (o KubeconfigKubernetesClientConfigurationPtrOutput) Host() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KubeconfigKubernetesClientConfiguration) *string { + if v == nil { + return nil + } + return v.Host + }).(pulumi.StringPtrOutput) +} + +type KubeconfigTimeouts struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create *string `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update *string `pulumi:"update"` +} + +// KubeconfigTimeoutsInput is an input type that accepts KubeconfigTimeoutsArgs and KubeconfigTimeoutsOutput values. +// You can construct a concrete instance of `KubeconfigTimeoutsInput` via: +// +// KubeconfigTimeoutsArgs{...} +type KubeconfigTimeoutsInput interface { + pulumi.Input + + ToKubeconfigTimeoutsOutput() KubeconfigTimeoutsOutput + ToKubeconfigTimeoutsOutputWithContext(context.Context) KubeconfigTimeoutsOutput +} + +type KubeconfigTimeoutsArgs struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create pulumi.StringPtrInput `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update pulumi.StringPtrInput `pulumi:"update"` +} + +func (KubeconfigTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*KubeconfigTimeouts)(nil)).Elem() +} + +func (i KubeconfigTimeoutsArgs) ToKubeconfigTimeoutsOutput() KubeconfigTimeoutsOutput { + return i.ToKubeconfigTimeoutsOutputWithContext(context.Background()) +} + +func (i KubeconfigTimeoutsArgs) ToKubeconfigTimeoutsOutputWithContext(ctx context.Context) KubeconfigTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(KubeconfigTimeoutsOutput) +} + +func (i KubeconfigTimeoutsArgs) ToKubeconfigTimeoutsPtrOutput() KubeconfigTimeoutsPtrOutput { + return i.ToKubeconfigTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i KubeconfigTimeoutsArgs) ToKubeconfigTimeoutsPtrOutputWithContext(ctx context.Context) KubeconfigTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KubeconfigTimeoutsOutput).ToKubeconfigTimeoutsPtrOutputWithContext(ctx) +} + +// KubeconfigTimeoutsPtrInput is an input type that accepts KubeconfigTimeoutsArgs, KubeconfigTimeoutsPtr and KubeconfigTimeoutsPtrOutput values. +// You can construct a concrete instance of `KubeconfigTimeoutsPtrInput` via: +// +// KubeconfigTimeoutsArgs{...} +// +// or: +// +// nil +type KubeconfigTimeoutsPtrInput interface { + pulumi.Input + + ToKubeconfigTimeoutsPtrOutput() KubeconfigTimeoutsPtrOutput + ToKubeconfigTimeoutsPtrOutputWithContext(context.Context) KubeconfigTimeoutsPtrOutput +} + +type kubeconfigTimeoutsPtrType KubeconfigTimeoutsArgs + +func KubeconfigTimeoutsPtr(v *KubeconfigTimeoutsArgs) KubeconfigTimeoutsPtrInput { + return (*kubeconfigTimeoutsPtrType)(v) +} + +func (*kubeconfigTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**KubeconfigTimeouts)(nil)).Elem() +} + +func (i *kubeconfigTimeoutsPtrType) ToKubeconfigTimeoutsPtrOutput() KubeconfigTimeoutsPtrOutput { + return i.ToKubeconfigTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *kubeconfigTimeoutsPtrType) ToKubeconfigTimeoutsPtrOutputWithContext(ctx context.Context) KubeconfigTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KubeconfigTimeoutsPtrOutput) +} + +type KubeconfigTimeoutsOutput struct{ *pulumi.OutputState } + +func (KubeconfigTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KubeconfigTimeouts)(nil)).Elem() +} + +func (o KubeconfigTimeoutsOutput) ToKubeconfigTimeoutsOutput() KubeconfigTimeoutsOutput { + return o +} + +func (o KubeconfigTimeoutsOutput) ToKubeconfigTimeoutsOutputWithContext(ctx context.Context) KubeconfigTimeoutsOutput { + return o +} + +func (o KubeconfigTimeoutsOutput) ToKubeconfigTimeoutsPtrOutput() KubeconfigTimeoutsPtrOutput { + return o.ToKubeconfigTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o KubeconfigTimeoutsOutput) ToKubeconfigTimeoutsPtrOutputWithContext(ctx context.Context) KubeconfigTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v KubeconfigTimeouts) *KubeconfigTimeouts { + return &v + }).(KubeconfigTimeoutsPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o KubeconfigTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v KubeconfigTimeouts) *string { return v.Create }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o KubeconfigTimeoutsOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v KubeconfigTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput) +} + +type KubeconfigTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (KubeconfigTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KubeconfigTimeouts)(nil)).Elem() +} + +func (o KubeconfigTimeoutsPtrOutput) ToKubeconfigTimeoutsPtrOutput() KubeconfigTimeoutsPtrOutput { + return o +} + +func (o KubeconfigTimeoutsPtrOutput) ToKubeconfigTimeoutsPtrOutputWithContext(ctx context.Context) KubeconfigTimeoutsPtrOutput { + return o +} + +func (o KubeconfigTimeoutsPtrOutput) Elem() KubeconfigTimeoutsOutput { + return o.ApplyT(func(v *KubeconfigTimeouts) KubeconfigTimeouts { + if v != nil { + return *v + } + var ret KubeconfigTimeouts + return ret + }).(KubeconfigTimeoutsOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o KubeconfigTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KubeconfigTimeouts) *string { + if v == nil { + return nil + } + return v.Create + }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o KubeconfigTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KubeconfigTimeouts) *string { + if v == nil { + return nil + } + return v.Update + }).(pulumi.StringPtrOutput) +} + type GetHealthClientConfiguration struct { // The client CA certificate CaCertificate string `pulumi:"caCertificate"` @@ -507,6 +1032,12 @@ func (o GetKubeconfigTimeoutsPtrOutput) Read() pulumi.StringPtrOutput { } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigClientConfigurationInput)(nil)).Elem(), KubeconfigClientConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigClientConfigurationPtrInput)(nil)).Elem(), KubeconfigClientConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigKubernetesClientConfigurationInput)(nil)).Elem(), KubeconfigKubernetesClientConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigKubernetesClientConfigurationPtrInput)(nil)).Elem(), KubeconfigKubernetesClientConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigTimeoutsInput)(nil)).Elem(), KubeconfigTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigTimeoutsPtrInput)(nil)).Elem(), KubeconfigTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetHealthClientConfigurationInput)(nil)).Elem(), GetHealthClientConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetHealthTimeoutsInput)(nil)).Elem(), GetHealthTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetHealthTimeoutsPtrInput)(nil)).Elem(), GetHealthTimeoutsArgs{}) @@ -514,6 +1045,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetKubeconfigKubernetesClientConfigurationInput)(nil)).Elem(), GetKubeconfigKubernetesClientConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetKubeconfigTimeoutsInput)(nil)).Elem(), GetKubeconfigTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetKubeconfigTimeoutsPtrInput)(nil)).Elem(), GetKubeconfigTimeoutsArgs{}) + pulumi.RegisterOutputType(KubeconfigClientConfigurationOutput{}) + pulumi.RegisterOutputType(KubeconfigClientConfigurationPtrOutput{}) + pulumi.RegisterOutputType(KubeconfigKubernetesClientConfigurationOutput{}) + pulumi.RegisterOutputType(KubeconfigKubernetesClientConfigurationPtrOutput{}) + pulumi.RegisterOutputType(KubeconfigTimeoutsOutput{}) + pulumi.RegisterOutputType(KubeconfigTimeoutsPtrOutput{}) pulumi.RegisterOutputType(GetHealthClientConfigurationOutput{}) pulumi.RegisterOutputType(GetHealthTimeoutsOutput{}) pulumi.RegisterOutputType(GetHealthTimeoutsPtrOutput{}) diff --git a/sdk/go/talos/config/config.go b/sdk/go/talos/config/config.go new file mode 100644 index 00000000..061dabe6 --- /dev/null +++ b/sdk/go/talos/config/config.go @@ -0,0 +1,17 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package config + +import ( + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config" + "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal" +) + +var _ = internal.GetEnvOrDefault + +// The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev. +func GetImageFactoryUrl(ctx *pulumi.Context) string { + return config.Get(ctx, "talos:imageFactoryUrl") +} diff --git a/sdk/go/talos/imagefactory/getExtensionsVersions.go b/sdk/go/talos/imagefactory/getExtensionsVersions.go new file mode 100644 index 00000000..e94e6072 --- /dev/null +++ b/sdk/go/talos/imagefactory/getExtensionsVersions.go @@ -0,0 +1,145 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package imagefactory + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal" +) + +// The image factory extensions versions data source provides a list of available extensions for a specific talos version from the image factory. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/pulumiverse/pulumi-talos/sdk/go/talos/imageFactory" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := imageFactory.GetExtensionsVersions(ctx, &imagefactory.GetExtensionsVersionsArgs{ +// TalosVersion: "v1.7.5", +// Filters: imagefactory.GetExtensionsVersionsFilters{ +// Names: []string{ +// "amdgpu", +// "tailscale", +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func GetExtensionsVersions(ctx *pulumi.Context, args *GetExtensionsVersionsArgs, opts ...pulumi.InvokeOption) (*GetExtensionsVersionsResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetExtensionsVersionsResult + err := ctx.Invoke("talos:imageFactory/getExtensionsVersions:getExtensionsVersions", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getExtensionsVersions. +type GetExtensionsVersionsArgs struct { + // The filter to apply to the extensions list. + Filters *GetExtensionsVersionsFilters `pulumi:"filters"` + // The talos version to get extensions for. + TalosVersion string `pulumi:"talosVersion"` +} + +// A collection of values returned by getExtensionsVersions. +type GetExtensionsVersionsResult struct { + // The list of available extensions for the specified talos version. + ExtensionsInfos []GetExtensionsVersionsExtensionsInfo `pulumi:"extensionsInfos"` + // The filter to apply to the extensions list. + Filters *GetExtensionsVersionsFilters `pulumi:"filters"` + // The ID of this resource. + Id string `pulumi:"id"` + // The talos version to get extensions for. + TalosVersion string `pulumi:"talosVersion"` +} + +func GetExtensionsVersionsOutput(ctx *pulumi.Context, args GetExtensionsVersionsOutputArgs, opts ...pulumi.InvokeOption) GetExtensionsVersionsResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetExtensionsVersionsResultOutput, error) { + args := v.(GetExtensionsVersionsArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetExtensionsVersionsResult + secret, err := ctx.InvokePackageRaw("talos:imageFactory/getExtensionsVersions:getExtensionsVersions", args, &rv, "", opts...) + if err != nil { + return GetExtensionsVersionsResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(GetExtensionsVersionsResultOutput) + if secret { + return pulumi.ToSecret(output).(GetExtensionsVersionsResultOutput), nil + } + return output, nil + }).(GetExtensionsVersionsResultOutput) +} + +// A collection of arguments for invoking getExtensionsVersions. +type GetExtensionsVersionsOutputArgs struct { + // The filter to apply to the extensions list. + Filters GetExtensionsVersionsFiltersPtrInput `pulumi:"filters"` + // The talos version to get extensions for. + TalosVersion pulumi.StringInput `pulumi:"talosVersion"` +} + +func (GetExtensionsVersionsOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetExtensionsVersionsArgs)(nil)).Elem() +} + +// A collection of values returned by getExtensionsVersions. +type GetExtensionsVersionsResultOutput struct{ *pulumi.OutputState } + +func (GetExtensionsVersionsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetExtensionsVersionsResult)(nil)).Elem() +} + +func (o GetExtensionsVersionsResultOutput) ToGetExtensionsVersionsResultOutput() GetExtensionsVersionsResultOutput { + return o +} + +func (o GetExtensionsVersionsResultOutput) ToGetExtensionsVersionsResultOutputWithContext(ctx context.Context) GetExtensionsVersionsResultOutput { + return o +} + +// The list of available extensions for the specified talos version. +func (o GetExtensionsVersionsResultOutput) ExtensionsInfos() GetExtensionsVersionsExtensionsInfoArrayOutput { + return o.ApplyT(func(v GetExtensionsVersionsResult) []GetExtensionsVersionsExtensionsInfo { return v.ExtensionsInfos }).(GetExtensionsVersionsExtensionsInfoArrayOutput) +} + +// The filter to apply to the extensions list. +func (o GetExtensionsVersionsResultOutput) Filters() GetExtensionsVersionsFiltersPtrOutput { + return o.ApplyT(func(v GetExtensionsVersionsResult) *GetExtensionsVersionsFilters { return v.Filters }).(GetExtensionsVersionsFiltersPtrOutput) +} + +// The ID of this resource. +func (o GetExtensionsVersionsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetExtensionsVersionsResult) string { return v.Id }).(pulumi.StringOutput) +} + +// The talos version to get extensions for. +func (o GetExtensionsVersionsResultOutput) TalosVersion() pulumi.StringOutput { + return o.ApplyT(func(v GetExtensionsVersionsResult) string { return v.TalosVersion }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetExtensionsVersionsResultOutput{}) +} diff --git a/sdk/go/talos/imagefactory/getOverlaysVersions.go b/sdk/go/talos/imagefactory/getOverlaysVersions.go new file mode 100644 index 00000000..3d098615 --- /dev/null +++ b/sdk/go/talos/imagefactory/getOverlaysVersions.go @@ -0,0 +1,142 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package imagefactory + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal" +) + +// The image factory overlays versions data source provides a list of available overlays for a specific talos version from the image factory. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/pulumiverse/pulumi-talos/sdk/go/talos/imageFactory" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := imageFactory.GetOverlaysVersions(ctx, &imagefactory.GetOverlaysVersionsArgs{ +// TalosVersion: "v1.7.5", +// Filters: imagefactory.GetOverlaysVersionsFilters{ +// Name: pulumi.StringRef("rock4cplus"), +// }, +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func GetOverlaysVersions(ctx *pulumi.Context, args *GetOverlaysVersionsArgs, opts ...pulumi.InvokeOption) (*GetOverlaysVersionsResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetOverlaysVersionsResult + err := ctx.Invoke("talos:imageFactory/getOverlaysVersions:getOverlaysVersions", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getOverlaysVersions. +type GetOverlaysVersionsArgs struct { + // The filter to apply to the overlays list. + Filters *GetOverlaysVersionsFilters `pulumi:"filters"` + // The talos version to get overlays for. + TalosVersion string `pulumi:"talosVersion"` +} + +// A collection of values returned by getOverlaysVersions. +type GetOverlaysVersionsResult struct { + // The filter to apply to the overlays list. + Filters *GetOverlaysVersionsFilters `pulumi:"filters"` + // The ID of this resource. + Id string `pulumi:"id"` + // The list of available extensions for the specified talos version. + OverlaysInfos []GetOverlaysVersionsOverlaysInfo `pulumi:"overlaysInfos"` + // The talos version to get overlays for. + TalosVersion string `pulumi:"talosVersion"` +} + +func GetOverlaysVersionsOutput(ctx *pulumi.Context, args GetOverlaysVersionsOutputArgs, opts ...pulumi.InvokeOption) GetOverlaysVersionsResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetOverlaysVersionsResultOutput, error) { + args := v.(GetOverlaysVersionsArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetOverlaysVersionsResult + secret, err := ctx.InvokePackageRaw("talos:imageFactory/getOverlaysVersions:getOverlaysVersions", args, &rv, "", opts...) + if err != nil { + return GetOverlaysVersionsResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(GetOverlaysVersionsResultOutput) + if secret { + return pulumi.ToSecret(output).(GetOverlaysVersionsResultOutput), nil + } + return output, nil + }).(GetOverlaysVersionsResultOutput) +} + +// A collection of arguments for invoking getOverlaysVersions. +type GetOverlaysVersionsOutputArgs struct { + // The filter to apply to the overlays list. + Filters GetOverlaysVersionsFiltersPtrInput `pulumi:"filters"` + // The talos version to get overlays for. + TalosVersion pulumi.StringInput `pulumi:"talosVersion"` +} + +func (GetOverlaysVersionsOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetOverlaysVersionsArgs)(nil)).Elem() +} + +// A collection of values returned by getOverlaysVersions. +type GetOverlaysVersionsResultOutput struct{ *pulumi.OutputState } + +func (GetOverlaysVersionsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetOverlaysVersionsResult)(nil)).Elem() +} + +func (o GetOverlaysVersionsResultOutput) ToGetOverlaysVersionsResultOutput() GetOverlaysVersionsResultOutput { + return o +} + +func (o GetOverlaysVersionsResultOutput) ToGetOverlaysVersionsResultOutputWithContext(ctx context.Context) GetOverlaysVersionsResultOutput { + return o +} + +// The filter to apply to the overlays list. +func (o GetOverlaysVersionsResultOutput) Filters() GetOverlaysVersionsFiltersPtrOutput { + return o.ApplyT(func(v GetOverlaysVersionsResult) *GetOverlaysVersionsFilters { return v.Filters }).(GetOverlaysVersionsFiltersPtrOutput) +} + +// The ID of this resource. +func (o GetOverlaysVersionsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetOverlaysVersionsResult) string { return v.Id }).(pulumi.StringOutput) +} + +// The list of available extensions for the specified talos version. +func (o GetOverlaysVersionsResultOutput) OverlaysInfos() GetOverlaysVersionsOverlaysInfoArrayOutput { + return o.ApplyT(func(v GetOverlaysVersionsResult) []GetOverlaysVersionsOverlaysInfo { return v.OverlaysInfos }).(GetOverlaysVersionsOverlaysInfoArrayOutput) +} + +// The talos version to get overlays for. +func (o GetOverlaysVersionsResultOutput) TalosVersion() pulumi.StringOutput { + return o.ApplyT(func(v GetOverlaysVersionsResult) string { return v.TalosVersion }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetOverlaysVersionsResultOutput{}) +} diff --git a/sdk/go/talos/imagefactory/getUrls.go b/sdk/go/talos/imagefactory/getUrls.go new file mode 100644 index 00000000..f2f8b634 --- /dev/null +++ b/sdk/go/talos/imagefactory/getUrls.go @@ -0,0 +1,122 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package imagefactory + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal" +) + +// Generates URLs for different assets supported by the Talos image factory. +func GetUrls(ctx *pulumi.Context, args *GetUrlsArgs, opts ...pulumi.InvokeOption) (*GetUrlsResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetUrlsResult + err := ctx.Invoke("talos:imageFactory/getUrls:getUrls", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getUrls. +type GetUrlsArgs struct { + Architecture *string `pulumi:"architecture"` + Platform *string `pulumi:"platform"` + Sbc *string `pulumi:"sbc"` + SchematicId string `pulumi:"schematicId"` + TalosVersion string `pulumi:"talosVersion"` +} + +// A collection of values returned by getUrls. +type GetUrlsResult struct { + Architecture string `pulumi:"architecture"` + Id string `pulumi:"id"` + Platform *string `pulumi:"platform"` + Sbc *string `pulumi:"sbc"` + SchematicId string `pulumi:"schematicId"` + TalosVersion string `pulumi:"talosVersion"` + Urls GetUrlsUrls `pulumi:"urls"` +} + +func GetUrlsOutput(ctx *pulumi.Context, args GetUrlsOutputArgs, opts ...pulumi.InvokeOption) GetUrlsResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetUrlsResultOutput, error) { + args := v.(GetUrlsArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetUrlsResult + secret, err := ctx.InvokePackageRaw("talos:imageFactory/getUrls:getUrls", args, &rv, "", opts...) + if err != nil { + return GetUrlsResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(GetUrlsResultOutput) + if secret { + return pulumi.ToSecret(output).(GetUrlsResultOutput), nil + } + return output, nil + }).(GetUrlsResultOutput) +} + +// A collection of arguments for invoking getUrls. +type GetUrlsOutputArgs struct { + Architecture pulumi.StringPtrInput `pulumi:"architecture"` + Platform pulumi.StringPtrInput `pulumi:"platform"` + Sbc pulumi.StringPtrInput `pulumi:"sbc"` + SchematicId pulumi.StringInput `pulumi:"schematicId"` + TalosVersion pulumi.StringInput `pulumi:"talosVersion"` +} + +func (GetUrlsOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetUrlsArgs)(nil)).Elem() +} + +// A collection of values returned by getUrls. +type GetUrlsResultOutput struct{ *pulumi.OutputState } + +func (GetUrlsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetUrlsResult)(nil)).Elem() +} + +func (o GetUrlsResultOutput) ToGetUrlsResultOutput() GetUrlsResultOutput { + return o +} + +func (o GetUrlsResultOutput) ToGetUrlsResultOutputWithContext(ctx context.Context) GetUrlsResultOutput { + return o +} + +func (o GetUrlsResultOutput) Architecture() pulumi.StringOutput { + return o.ApplyT(func(v GetUrlsResult) string { return v.Architecture }).(pulumi.StringOutput) +} + +func (o GetUrlsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetUrlsResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o GetUrlsResultOutput) Platform() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetUrlsResult) *string { return v.Platform }).(pulumi.StringPtrOutput) +} + +func (o GetUrlsResultOutput) Sbc() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetUrlsResult) *string { return v.Sbc }).(pulumi.StringPtrOutput) +} + +func (o GetUrlsResultOutput) SchematicId() pulumi.StringOutput { + return o.ApplyT(func(v GetUrlsResult) string { return v.SchematicId }).(pulumi.StringOutput) +} + +func (o GetUrlsResultOutput) TalosVersion() pulumi.StringOutput { + return o.ApplyT(func(v GetUrlsResult) string { return v.TalosVersion }).(pulumi.StringOutput) +} + +func (o GetUrlsResultOutput) Urls() GetUrlsUrlsOutput { + return o.ApplyT(func(v GetUrlsResult) GetUrlsUrls { return v.Urls }).(GetUrlsUrlsOutput) +} + +func init() { + pulumi.RegisterOutputType(GetUrlsResultOutput{}) +} diff --git a/sdk/go/talos/imagefactory/getVersions.go b/sdk/go/talos/imagefactory/getVersions.go new file mode 100644 index 00000000..50940418 --- /dev/null +++ b/sdk/go/talos/imagefactory/getVersions.go @@ -0,0 +1,102 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package imagefactory + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal" +) + +// The image factory versions data source provides a list of available talos versions from the image factory. +func GetVersions(ctx *pulumi.Context, args *GetVersionsArgs, opts ...pulumi.InvokeOption) (*GetVersionsResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetVersionsResult + err := ctx.Invoke("talos:imageFactory/getVersions:getVersions", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getVersions. +type GetVersionsArgs struct { + // The filter to apply to the overlays list. + Filters *GetVersionsFilters `pulumi:"filters"` +} + +// A collection of values returned by getVersions. +type GetVersionsResult struct { + // The filter to apply to the overlays list. + Filters *GetVersionsFilters `pulumi:"filters"` + // The ID of this resource. + Id string `pulumi:"id"` + // The list of available talos versions. + TalosVersions []string `pulumi:"talosVersions"` +} + +func GetVersionsOutput(ctx *pulumi.Context, args GetVersionsOutputArgs, opts ...pulumi.InvokeOption) GetVersionsResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetVersionsResultOutput, error) { + args := v.(GetVersionsArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetVersionsResult + secret, err := ctx.InvokePackageRaw("talos:imageFactory/getVersions:getVersions", args, &rv, "", opts...) + if err != nil { + return GetVersionsResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(GetVersionsResultOutput) + if secret { + return pulumi.ToSecret(output).(GetVersionsResultOutput), nil + } + return output, nil + }).(GetVersionsResultOutput) +} + +// A collection of arguments for invoking getVersions. +type GetVersionsOutputArgs struct { + // The filter to apply to the overlays list. + Filters GetVersionsFiltersPtrInput `pulumi:"filters"` +} + +func (GetVersionsOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetVersionsArgs)(nil)).Elem() +} + +// A collection of values returned by getVersions. +type GetVersionsResultOutput struct{ *pulumi.OutputState } + +func (GetVersionsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetVersionsResult)(nil)).Elem() +} + +func (o GetVersionsResultOutput) ToGetVersionsResultOutput() GetVersionsResultOutput { + return o +} + +func (o GetVersionsResultOutput) ToGetVersionsResultOutputWithContext(ctx context.Context) GetVersionsResultOutput { + return o +} + +// The filter to apply to the overlays list. +func (o GetVersionsResultOutput) Filters() GetVersionsFiltersPtrOutput { + return o.ApplyT(func(v GetVersionsResult) *GetVersionsFilters { return v.Filters }).(GetVersionsFiltersPtrOutput) +} + +// The ID of this resource. +func (o GetVersionsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetVersionsResult) string { return v.Id }).(pulumi.StringOutput) +} + +// The list of available talos versions. +func (o GetVersionsResultOutput) TalosVersions() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetVersionsResult) []string { return v.TalosVersions }).(pulumi.StringArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(GetVersionsResultOutput{}) +} diff --git a/sdk/go/talos/imagefactory/init.go b/sdk/go/talos/imagefactory/init.go new file mode 100644 index 00000000..ae913ea2 --- /dev/null +++ b/sdk/go/talos/imagefactory/init.go @@ -0,0 +1,44 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package imagefactory + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "talos:imageFactory/schematic:Schematic": + r = &Schematic{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := internal.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "talos", + "imageFactory/schematic", + &module{version}, + ) +} diff --git a/sdk/go/talos/imagefactory/pulumiTypes.go b/sdk/go/talos/imagefactory/pulumiTypes.go new file mode 100644 index 00000000..e5fe5b95 --- /dev/null +++ b/sdk/go/talos/imagefactory/pulumiTypes.go @@ -0,0 +1,822 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package imagefactory + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal" +) + +var _ = internal.GetEnvOrDefault + +type GetExtensionsVersionsExtensionsInfo struct { + Author string `pulumi:"author"` + Description string `pulumi:"description"` + Digest string `pulumi:"digest"` + Name string `pulumi:"name"` + Ref string `pulumi:"ref"` +} + +// GetExtensionsVersionsExtensionsInfoInput is an input type that accepts GetExtensionsVersionsExtensionsInfoArgs and GetExtensionsVersionsExtensionsInfoOutput values. +// You can construct a concrete instance of `GetExtensionsVersionsExtensionsInfoInput` via: +// +// GetExtensionsVersionsExtensionsInfoArgs{...} +type GetExtensionsVersionsExtensionsInfoInput interface { + pulumi.Input + + ToGetExtensionsVersionsExtensionsInfoOutput() GetExtensionsVersionsExtensionsInfoOutput + ToGetExtensionsVersionsExtensionsInfoOutputWithContext(context.Context) GetExtensionsVersionsExtensionsInfoOutput +} + +type GetExtensionsVersionsExtensionsInfoArgs struct { + Author pulumi.StringInput `pulumi:"author"` + Description pulumi.StringInput `pulumi:"description"` + Digest pulumi.StringInput `pulumi:"digest"` + Name pulumi.StringInput `pulumi:"name"` + Ref pulumi.StringInput `pulumi:"ref"` +} + +func (GetExtensionsVersionsExtensionsInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetExtensionsVersionsExtensionsInfo)(nil)).Elem() +} + +func (i GetExtensionsVersionsExtensionsInfoArgs) ToGetExtensionsVersionsExtensionsInfoOutput() GetExtensionsVersionsExtensionsInfoOutput { + return i.ToGetExtensionsVersionsExtensionsInfoOutputWithContext(context.Background()) +} + +func (i GetExtensionsVersionsExtensionsInfoArgs) ToGetExtensionsVersionsExtensionsInfoOutputWithContext(ctx context.Context) GetExtensionsVersionsExtensionsInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetExtensionsVersionsExtensionsInfoOutput) +} + +// GetExtensionsVersionsExtensionsInfoArrayInput is an input type that accepts GetExtensionsVersionsExtensionsInfoArray and GetExtensionsVersionsExtensionsInfoArrayOutput values. +// You can construct a concrete instance of `GetExtensionsVersionsExtensionsInfoArrayInput` via: +// +// GetExtensionsVersionsExtensionsInfoArray{ GetExtensionsVersionsExtensionsInfoArgs{...} } +type GetExtensionsVersionsExtensionsInfoArrayInput interface { + pulumi.Input + + ToGetExtensionsVersionsExtensionsInfoArrayOutput() GetExtensionsVersionsExtensionsInfoArrayOutput + ToGetExtensionsVersionsExtensionsInfoArrayOutputWithContext(context.Context) GetExtensionsVersionsExtensionsInfoArrayOutput +} + +type GetExtensionsVersionsExtensionsInfoArray []GetExtensionsVersionsExtensionsInfoInput + +func (GetExtensionsVersionsExtensionsInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetExtensionsVersionsExtensionsInfo)(nil)).Elem() +} + +func (i GetExtensionsVersionsExtensionsInfoArray) ToGetExtensionsVersionsExtensionsInfoArrayOutput() GetExtensionsVersionsExtensionsInfoArrayOutput { + return i.ToGetExtensionsVersionsExtensionsInfoArrayOutputWithContext(context.Background()) +} + +func (i GetExtensionsVersionsExtensionsInfoArray) ToGetExtensionsVersionsExtensionsInfoArrayOutputWithContext(ctx context.Context) GetExtensionsVersionsExtensionsInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetExtensionsVersionsExtensionsInfoArrayOutput) +} + +type GetExtensionsVersionsExtensionsInfoOutput struct{ *pulumi.OutputState } + +func (GetExtensionsVersionsExtensionsInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetExtensionsVersionsExtensionsInfo)(nil)).Elem() +} + +func (o GetExtensionsVersionsExtensionsInfoOutput) ToGetExtensionsVersionsExtensionsInfoOutput() GetExtensionsVersionsExtensionsInfoOutput { + return o +} + +func (o GetExtensionsVersionsExtensionsInfoOutput) ToGetExtensionsVersionsExtensionsInfoOutputWithContext(ctx context.Context) GetExtensionsVersionsExtensionsInfoOutput { + return o +} + +func (o GetExtensionsVersionsExtensionsInfoOutput) Author() pulumi.StringOutput { + return o.ApplyT(func(v GetExtensionsVersionsExtensionsInfo) string { return v.Author }).(pulumi.StringOutput) +} + +func (o GetExtensionsVersionsExtensionsInfoOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v GetExtensionsVersionsExtensionsInfo) string { return v.Description }).(pulumi.StringOutput) +} + +func (o GetExtensionsVersionsExtensionsInfoOutput) Digest() pulumi.StringOutput { + return o.ApplyT(func(v GetExtensionsVersionsExtensionsInfo) string { return v.Digest }).(pulumi.StringOutput) +} + +func (o GetExtensionsVersionsExtensionsInfoOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetExtensionsVersionsExtensionsInfo) string { return v.Name }).(pulumi.StringOutput) +} + +func (o GetExtensionsVersionsExtensionsInfoOutput) Ref() pulumi.StringOutput { + return o.ApplyT(func(v GetExtensionsVersionsExtensionsInfo) string { return v.Ref }).(pulumi.StringOutput) +} + +type GetExtensionsVersionsExtensionsInfoArrayOutput struct{ *pulumi.OutputState } + +func (GetExtensionsVersionsExtensionsInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetExtensionsVersionsExtensionsInfo)(nil)).Elem() +} + +func (o GetExtensionsVersionsExtensionsInfoArrayOutput) ToGetExtensionsVersionsExtensionsInfoArrayOutput() GetExtensionsVersionsExtensionsInfoArrayOutput { + return o +} + +func (o GetExtensionsVersionsExtensionsInfoArrayOutput) ToGetExtensionsVersionsExtensionsInfoArrayOutputWithContext(ctx context.Context) GetExtensionsVersionsExtensionsInfoArrayOutput { + return o +} + +func (o GetExtensionsVersionsExtensionsInfoArrayOutput) Index(i pulumi.IntInput) GetExtensionsVersionsExtensionsInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetExtensionsVersionsExtensionsInfo { + return vs[0].([]GetExtensionsVersionsExtensionsInfo)[vs[1].(int)] + }).(GetExtensionsVersionsExtensionsInfoOutput) +} + +type GetExtensionsVersionsFilters struct { + // The name of the extension to filter by. + Names []string `pulumi:"names"` +} + +// GetExtensionsVersionsFiltersInput is an input type that accepts GetExtensionsVersionsFiltersArgs and GetExtensionsVersionsFiltersOutput values. +// You can construct a concrete instance of `GetExtensionsVersionsFiltersInput` via: +// +// GetExtensionsVersionsFiltersArgs{...} +type GetExtensionsVersionsFiltersInput interface { + pulumi.Input + + ToGetExtensionsVersionsFiltersOutput() GetExtensionsVersionsFiltersOutput + ToGetExtensionsVersionsFiltersOutputWithContext(context.Context) GetExtensionsVersionsFiltersOutput +} + +type GetExtensionsVersionsFiltersArgs struct { + // The name of the extension to filter by. + Names pulumi.StringArrayInput `pulumi:"names"` +} + +func (GetExtensionsVersionsFiltersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetExtensionsVersionsFilters)(nil)).Elem() +} + +func (i GetExtensionsVersionsFiltersArgs) ToGetExtensionsVersionsFiltersOutput() GetExtensionsVersionsFiltersOutput { + return i.ToGetExtensionsVersionsFiltersOutputWithContext(context.Background()) +} + +func (i GetExtensionsVersionsFiltersArgs) ToGetExtensionsVersionsFiltersOutputWithContext(ctx context.Context) GetExtensionsVersionsFiltersOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetExtensionsVersionsFiltersOutput) +} + +func (i GetExtensionsVersionsFiltersArgs) ToGetExtensionsVersionsFiltersPtrOutput() GetExtensionsVersionsFiltersPtrOutput { + return i.ToGetExtensionsVersionsFiltersPtrOutputWithContext(context.Background()) +} + +func (i GetExtensionsVersionsFiltersArgs) ToGetExtensionsVersionsFiltersPtrOutputWithContext(ctx context.Context) GetExtensionsVersionsFiltersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetExtensionsVersionsFiltersOutput).ToGetExtensionsVersionsFiltersPtrOutputWithContext(ctx) +} + +// GetExtensionsVersionsFiltersPtrInput is an input type that accepts GetExtensionsVersionsFiltersArgs, GetExtensionsVersionsFiltersPtr and GetExtensionsVersionsFiltersPtrOutput values. +// You can construct a concrete instance of `GetExtensionsVersionsFiltersPtrInput` via: +// +// GetExtensionsVersionsFiltersArgs{...} +// +// or: +// +// nil +type GetExtensionsVersionsFiltersPtrInput interface { + pulumi.Input + + ToGetExtensionsVersionsFiltersPtrOutput() GetExtensionsVersionsFiltersPtrOutput + ToGetExtensionsVersionsFiltersPtrOutputWithContext(context.Context) GetExtensionsVersionsFiltersPtrOutput +} + +type getExtensionsVersionsFiltersPtrType GetExtensionsVersionsFiltersArgs + +func GetExtensionsVersionsFiltersPtr(v *GetExtensionsVersionsFiltersArgs) GetExtensionsVersionsFiltersPtrInput { + return (*getExtensionsVersionsFiltersPtrType)(v) +} + +func (*getExtensionsVersionsFiltersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GetExtensionsVersionsFilters)(nil)).Elem() +} + +func (i *getExtensionsVersionsFiltersPtrType) ToGetExtensionsVersionsFiltersPtrOutput() GetExtensionsVersionsFiltersPtrOutput { + return i.ToGetExtensionsVersionsFiltersPtrOutputWithContext(context.Background()) +} + +func (i *getExtensionsVersionsFiltersPtrType) ToGetExtensionsVersionsFiltersPtrOutputWithContext(ctx context.Context) GetExtensionsVersionsFiltersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetExtensionsVersionsFiltersPtrOutput) +} + +type GetExtensionsVersionsFiltersOutput struct{ *pulumi.OutputState } + +func (GetExtensionsVersionsFiltersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetExtensionsVersionsFilters)(nil)).Elem() +} + +func (o GetExtensionsVersionsFiltersOutput) ToGetExtensionsVersionsFiltersOutput() GetExtensionsVersionsFiltersOutput { + return o +} + +func (o GetExtensionsVersionsFiltersOutput) ToGetExtensionsVersionsFiltersOutputWithContext(ctx context.Context) GetExtensionsVersionsFiltersOutput { + return o +} + +func (o GetExtensionsVersionsFiltersOutput) ToGetExtensionsVersionsFiltersPtrOutput() GetExtensionsVersionsFiltersPtrOutput { + return o.ToGetExtensionsVersionsFiltersPtrOutputWithContext(context.Background()) +} + +func (o GetExtensionsVersionsFiltersOutput) ToGetExtensionsVersionsFiltersPtrOutputWithContext(ctx context.Context) GetExtensionsVersionsFiltersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GetExtensionsVersionsFilters) *GetExtensionsVersionsFilters { + return &v + }).(GetExtensionsVersionsFiltersPtrOutput) +} + +// The name of the extension to filter by. +func (o GetExtensionsVersionsFiltersOutput) Names() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetExtensionsVersionsFilters) []string { return v.Names }).(pulumi.StringArrayOutput) +} + +type GetExtensionsVersionsFiltersPtrOutput struct{ *pulumi.OutputState } + +func (GetExtensionsVersionsFiltersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GetExtensionsVersionsFilters)(nil)).Elem() +} + +func (o GetExtensionsVersionsFiltersPtrOutput) ToGetExtensionsVersionsFiltersPtrOutput() GetExtensionsVersionsFiltersPtrOutput { + return o +} + +func (o GetExtensionsVersionsFiltersPtrOutput) ToGetExtensionsVersionsFiltersPtrOutputWithContext(ctx context.Context) GetExtensionsVersionsFiltersPtrOutput { + return o +} + +func (o GetExtensionsVersionsFiltersPtrOutput) Elem() GetExtensionsVersionsFiltersOutput { + return o.ApplyT(func(v *GetExtensionsVersionsFilters) GetExtensionsVersionsFilters { + if v != nil { + return *v + } + var ret GetExtensionsVersionsFilters + return ret + }).(GetExtensionsVersionsFiltersOutput) +} + +// The name of the extension to filter by. +func (o GetExtensionsVersionsFiltersPtrOutput) Names() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GetExtensionsVersionsFilters) []string { + if v == nil { + return nil + } + return v.Names + }).(pulumi.StringArrayOutput) +} + +type GetOverlaysVersionsFilters struct { + // The name of the overlay to filter by. + Name *string `pulumi:"name"` +} + +// GetOverlaysVersionsFiltersInput is an input type that accepts GetOverlaysVersionsFiltersArgs and GetOverlaysVersionsFiltersOutput values. +// You can construct a concrete instance of `GetOverlaysVersionsFiltersInput` via: +// +// GetOverlaysVersionsFiltersArgs{...} +type GetOverlaysVersionsFiltersInput interface { + pulumi.Input + + ToGetOverlaysVersionsFiltersOutput() GetOverlaysVersionsFiltersOutput + ToGetOverlaysVersionsFiltersOutputWithContext(context.Context) GetOverlaysVersionsFiltersOutput +} + +type GetOverlaysVersionsFiltersArgs struct { + // The name of the overlay to filter by. + Name pulumi.StringPtrInput `pulumi:"name"` +} + +func (GetOverlaysVersionsFiltersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetOverlaysVersionsFilters)(nil)).Elem() +} + +func (i GetOverlaysVersionsFiltersArgs) ToGetOverlaysVersionsFiltersOutput() GetOverlaysVersionsFiltersOutput { + return i.ToGetOverlaysVersionsFiltersOutputWithContext(context.Background()) +} + +func (i GetOverlaysVersionsFiltersArgs) ToGetOverlaysVersionsFiltersOutputWithContext(ctx context.Context) GetOverlaysVersionsFiltersOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetOverlaysVersionsFiltersOutput) +} + +func (i GetOverlaysVersionsFiltersArgs) ToGetOverlaysVersionsFiltersPtrOutput() GetOverlaysVersionsFiltersPtrOutput { + return i.ToGetOverlaysVersionsFiltersPtrOutputWithContext(context.Background()) +} + +func (i GetOverlaysVersionsFiltersArgs) ToGetOverlaysVersionsFiltersPtrOutputWithContext(ctx context.Context) GetOverlaysVersionsFiltersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetOverlaysVersionsFiltersOutput).ToGetOverlaysVersionsFiltersPtrOutputWithContext(ctx) +} + +// GetOverlaysVersionsFiltersPtrInput is an input type that accepts GetOverlaysVersionsFiltersArgs, GetOverlaysVersionsFiltersPtr and GetOverlaysVersionsFiltersPtrOutput values. +// You can construct a concrete instance of `GetOverlaysVersionsFiltersPtrInput` via: +// +// GetOverlaysVersionsFiltersArgs{...} +// +// or: +// +// nil +type GetOverlaysVersionsFiltersPtrInput interface { + pulumi.Input + + ToGetOverlaysVersionsFiltersPtrOutput() GetOverlaysVersionsFiltersPtrOutput + ToGetOverlaysVersionsFiltersPtrOutputWithContext(context.Context) GetOverlaysVersionsFiltersPtrOutput +} + +type getOverlaysVersionsFiltersPtrType GetOverlaysVersionsFiltersArgs + +func GetOverlaysVersionsFiltersPtr(v *GetOverlaysVersionsFiltersArgs) GetOverlaysVersionsFiltersPtrInput { + return (*getOverlaysVersionsFiltersPtrType)(v) +} + +func (*getOverlaysVersionsFiltersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GetOverlaysVersionsFilters)(nil)).Elem() +} + +func (i *getOverlaysVersionsFiltersPtrType) ToGetOverlaysVersionsFiltersPtrOutput() GetOverlaysVersionsFiltersPtrOutput { + return i.ToGetOverlaysVersionsFiltersPtrOutputWithContext(context.Background()) +} + +func (i *getOverlaysVersionsFiltersPtrType) ToGetOverlaysVersionsFiltersPtrOutputWithContext(ctx context.Context) GetOverlaysVersionsFiltersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetOverlaysVersionsFiltersPtrOutput) +} + +type GetOverlaysVersionsFiltersOutput struct{ *pulumi.OutputState } + +func (GetOverlaysVersionsFiltersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetOverlaysVersionsFilters)(nil)).Elem() +} + +func (o GetOverlaysVersionsFiltersOutput) ToGetOverlaysVersionsFiltersOutput() GetOverlaysVersionsFiltersOutput { + return o +} + +func (o GetOverlaysVersionsFiltersOutput) ToGetOverlaysVersionsFiltersOutputWithContext(ctx context.Context) GetOverlaysVersionsFiltersOutput { + return o +} + +func (o GetOverlaysVersionsFiltersOutput) ToGetOverlaysVersionsFiltersPtrOutput() GetOverlaysVersionsFiltersPtrOutput { + return o.ToGetOverlaysVersionsFiltersPtrOutputWithContext(context.Background()) +} + +func (o GetOverlaysVersionsFiltersOutput) ToGetOverlaysVersionsFiltersPtrOutputWithContext(ctx context.Context) GetOverlaysVersionsFiltersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GetOverlaysVersionsFilters) *GetOverlaysVersionsFilters { + return &v + }).(GetOverlaysVersionsFiltersPtrOutput) +} + +// The name of the overlay to filter by. +func (o GetOverlaysVersionsFiltersOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetOverlaysVersionsFilters) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +type GetOverlaysVersionsFiltersPtrOutput struct{ *pulumi.OutputState } + +func (GetOverlaysVersionsFiltersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GetOverlaysVersionsFilters)(nil)).Elem() +} + +func (o GetOverlaysVersionsFiltersPtrOutput) ToGetOverlaysVersionsFiltersPtrOutput() GetOverlaysVersionsFiltersPtrOutput { + return o +} + +func (o GetOverlaysVersionsFiltersPtrOutput) ToGetOverlaysVersionsFiltersPtrOutputWithContext(ctx context.Context) GetOverlaysVersionsFiltersPtrOutput { + return o +} + +func (o GetOverlaysVersionsFiltersPtrOutput) Elem() GetOverlaysVersionsFiltersOutput { + return o.ApplyT(func(v *GetOverlaysVersionsFilters) GetOverlaysVersionsFilters { + if v != nil { + return *v + } + var ret GetOverlaysVersionsFilters + return ret + }).(GetOverlaysVersionsFiltersOutput) +} + +// The name of the overlay to filter by. +func (o GetOverlaysVersionsFiltersPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GetOverlaysVersionsFilters) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +type GetOverlaysVersionsOverlaysInfo struct { + Digest string `pulumi:"digest"` + Image string `pulumi:"image"` + Name string `pulumi:"name"` + Ref string `pulumi:"ref"` +} + +// GetOverlaysVersionsOverlaysInfoInput is an input type that accepts GetOverlaysVersionsOverlaysInfoArgs and GetOverlaysVersionsOverlaysInfoOutput values. +// You can construct a concrete instance of `GetOverlaysVersionsOverlaysInfoInput` via: +// +// GetOverlaysVersionsOverlaysInfoArgs{...} +type GetOverlaysVersionsOverlaysInfoInput interface { + pulumi.Input + + ToGetOverlaysVersionsOverlaysInfoOutput() GetOverlaysVersionsOverlaysInfoOutput + ToGetOverlaysVersionsOverlaysInfoOutputWithContext(context.Context) GetOverlaysVersionsOverlaysInfoOutput +} + +type GetOverlaysVersionsOverlaysInfoArgs struct { + Digest pulumi.StringInput `pulumi:"digest"` + Image pulumi.StringInput `pulumi:"image"` + Name pulumi.StringInput `pulumi:"name"` + Ref pulumi.StringInput `pulumi:"ref"` +} + +func (GetOverlaysVersionsOverlaysInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetOverlaysVersionsOverlaysInfo)(nil)).Elem() +} + +func (i GetOverlaysVersionsOverlaysInfoArgs) ToGetOverlaysVersionsOverlaysInfoOutput() GetOverlaysVersionsOverlaysInfoOutput { + return i.ToGetOverlaysVersionsOverlaysInfoOutputWithContext(context.Background()) +} + +func (i GetOverlaysVersionsOverlaysInfoArgs) ToGetOverlaysVersionsOverlaysInfoOutputWithContext(ctx context.Context) GetOverlaysVersionsOverlaysInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetOverlaysVersionsOverlaysInfoOutput) +} + +// GetOverlaysVersionsOverlaysInfoArrayInput is an input type that accepts GetOverlaysVersionsOverlaysInfoArray and GetOverlaysVersionsOverlaysInfoArrayOutput values. +// You can construct a concrete instance of `GetOverlaysVersionsOverlaysInfoArrayInput` via: +// +// GetOverlaysVersionsOverlaysInfoArray{ GetOverlaysVersionsOverlaysInfoArgs{...} } +type GetOverlaysVersionsOverlaysInfoArrayInput interface { + pulumi.Input + + ToGetOverlaysVersionsOverlaysInfoArrayOutput() GetOverlaysVersionsOverlaysInfoArrayOutput + ToGetOverlaysVersionsOverlaysInfoArrayOutputWithContext(context.Context) GetOverlaysVersionsOverlaysInfoArrayOutput +} + +type GetOverlaysVersionsOverlaysInfoArray []GetOverlaysVersionsOverlaysInfoInput + +func (GetOverlaysVersionsOverlaysInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetOverlaysVersionsOverlaysInfo)(nil)).Elem() +} + +func (i GetOverlaysVersionsOverlaysInfoArray) ToGetOverlaysVersionsOverlaysInfoArrayOutput() GetOverlaysVersionsOverlaysInfoArrayOutput { + return i.ToGetOverlaysVersionsOverlaysInfoArrayOutputWithContext(context.Background()) +} + +func (i GetOverlaysVersionsOverlaysInfoArray) ToGetOverlaysVersionsOverlaysInfoArrayOutputWithContext(ctx context.Context) GetOverlaysVersionsOverlaysInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetOverlaysVersionsOverlaysInfoArrayOutput) +} + +type GetOverlaysVersionsOverlaysInfoOutput struct{ *pulumi.OutputState } + +func (GetOverlaysVersionsOverlaysInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetOverlaysVersionsOverlaysInfo)(nil)).Elem() +} + +func (o GetOverlaysVersionsOverlaysInfoOutput) ToGetOverlaysVersionsOverlaysInfoOutput() GetOverlaysVersionsOverlaysInfoOutput { + return o +} + +func (o GetOverlaysVersionsOverlaysInfoOutput) ToGetOverlaysVersionsOverlaysInfoOutputWithContext(ctx context.Context) GetOverlaysVersionsOverlaysInfoOutput { + return o +} + +func (o GetOverlaysVersionsOverlaysInfoOutput) Digest() pulumi.StringOutput { + return o.ApplyT(func(v GetOverlaysVersionsOverlaysInfo) string { return v.Digest }).(pulumi.StringOutput) +} + +func (o GetOverlaysVersionsOverlaysInfoOutput) Image() pulumi.StringOutput { + return o.ApplyT(func(v GetOverlaysVersionsOverlaysInfo) string { return v.Image }).(pulumi.StringOutput) +} + +func (o GetOverlaysVersionsOverlaysInfoOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetOverlaysVersionsOverlaysInfo) string { return v.Name }).(pulumi.StringOutput) +} + +func (o GetOverlaysVersionsOverlaysInfoOutput) Ref() pulumi.StringOutput { + return o.ApplyT(func(v GetOverlaysVersionsOverlaysInfo) string { return v.Ref }).(pulumi.StringOutput) +} + +type GetOverlaysVersionsOverlaysInfoArrayOutput struct{ *pulumi.OutputState } + +func (GetOverlaysVersionsOverlaysInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetOverlaysVersionsOverlaysInfo)(nil)).Elem() +} + +func (o GetOverlaysVersionsOverlaysInfoArrayOutput) ToGetOverlaysVersionsOverlaysInfoArrayOutput() GetOverlaysVersionsOverlaysInfoArrayOutput { + return o +} + +func (o GetOverlaysVersionsOverlaysInfoArrayOutput) ToGetOverlaysVersionsOverlaysInfoArrayOutputWithContext(ctx context.Context) GetOverlaysVersionsOverlaysInfoArrayOutput { + return o +} + +func (o GetOverlaysVersionsOverlaysInfoArrayOutput) Index(i pulumi.IntInput) GetOverlaysVersionsOverlaysInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetOverlaysVersionsOverlaysInfo { + return vs[0].([]GetOverlaysVersionsOverlaysInfo)[vs[1].(int)] + }).(GetOverlaysVersionsOverlaysInfoOutput) +} + +type GetUrlsUrls struct { + // The URL for the disk image. + DiskImage string `pulumi:"diskImage"` + // The URL for the disk image with secure boot. + DiskImageSecureboot string `pulumi:"diskImageSecureboot"` + // The URL for the initramfs image. + Initramfs string `pulumi:"initramfs"` + // The URL for the installer image. + Installer string `pulumi:"installer"` + // The URL for the installer image with secure boot. + InstallerSecureboot string `pulumi:"installerSecureboot"` + // The URL for the ISO image. + Iso string `pulumi:"iso"` + // The URL for the ISO image with secure boot. + IsoSecureboot string `pulumi:"isoSecureboot"` + // The URL for the kernel image. + Kernel string `pulumi:"kernel"` + // The URL for the kernel command line. + KernelCommandLine string `pulumi:"kernelCommandLine"` + // The URL for the PXE image. + Pxe string `pulumi:"pxe"` + // The URL for the UKI image. + Uki string `pulumi:"uki"` +} + +// GetUrlsUrlsInput is an input type that accepts GetUrlsUrlsArgs and GetUrlsUrlsOutput values. +// You can construct a concrete instance of `GetUrlsUrlsInput` via: +// +// GetUrlsUrlsArgs{...} +type GetUrlsUrlsInput interface { + pulumi.Input + + ToGetUrlsUrlsOutput() GetUrlsUrlsOutput + ToGetUrlsUrlsOutputWithContext(context.Context) GetUrlsUrlsOutput +} + +type GetUrlsUrlsArgs struct { + // The URL for the disk image. + DiskImage pulumi.StringInput `pulumi:"diskImage"` + // The URL for the disk image with secure boot. + DiskImageSecureboot pulumi.StringInput `pulumi:"diskImageSecureboot"` + // The URL for the initramfs image. + Initramfs pulumi.StringInput `pulumi:"initramfs"` + // The URL for the installer image. + Installer pulumi.StringInput `pulumi:"installer"` + // The URL for the installer image with secure boot. + InstallerSecureboot pulumi.StringInput `pulumi:"installerSecureboot"` + // The URL for the ISO image. + Iso pulumi.StringInput `pulumi:"iso"` + // The URL for the ISO image with secure boot. + IsoSecureboot pulumi.StringInput `pulumi:"isoSecureboot"` + // The URL for the kernel image. + Kernel pulumi.StringInput `pulumi:"kernel"` + // The URL for the kernel command line. + KernelCommandLine pulumi.StringInput `pulumi:"kernelCommandLine"` + // The URL for the PXE image. + Pxe pulumi.StringInput `pulumi:"pxe"` + // The URL for the UKI image. + Uki pulumi.StringInput `pulumi:"uki"` +} + +func (GetUrlsUrlsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetUrlsUrls)(nil)).Elem() +} + +func (i GetUrlsUrlsArgs) ToGetUrlsUrlsOutput() GetUrlsUrlsOutput { + return i.ToGetUrlsUrlsOutputWithContext(context.Background()) +} + +func (i GetUrlsUrlsArgs) ToGetUrlsUrlsOutputWithContext(ctx context.Context) GetUrlsUrlsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetUrlsUrlsOutput) +} + +type GetUrlsUrlsOutput struct{ *pulumi.OutputState } + +func (GetUrlsUrlsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetUrlsUrls)(nil)).Elem() +} + +func (o GetUrlsUrlsOutput) ToGetUrlsUrlsOutput() GetUrlsUrlsOutput { + return o +} + +func (o GetUrlsUrlsOutput) ToGetUrlsUrlsOutputWithContext(ctx context.Context) GetUrlsUrlsOutput { + return o +} + +// The URL for the disk image. +func (o GetUrlsUrlsOutput) DiskImage() pulumi.StringOutput { + return o.ApplyT(func(v GetUrlsUrls) string { return v.DiskImage }).(pulumi.StringOutput) +} + +// The URL for the disk image with secure boot. +func (o GetUrlsUrlsOutput) DiskImageSecureboot() pulumi.StringOutput { + return o.ApplyT(func(v GetUrlsUrls) string { return v.DiskImageSecureboot }).(pulumi.StringOutput) +} + +// The URL for the initramfs image. +func (o GetUrlsUrlsOutput) Initramfs() pulumi.StringOutput { + return o.ApplyT(func(v GetUrlsUrls) string { return v.Initramfs }).(pulumi.StringOutput) +} + +// The URL for the installer image. +func (o GetUrlsUrlsOutput) Installer() pulumi.StringOutput { + return o.ApplyT(func(v GetUrlsUrls) string { return v.Installer }).(pulumi.StringOutput) +} + +// The URL for the installer image with secure boot. +func (o GetUrlsUrlsOutput) InstallerSecureboot() pulumi.StringOutput { + return o.ApplyT(func(v GetUrlsUrls) string { return v.InstallerSecureboot }).(pulumi.StringOutput) +} + +// The URL for the ISO image. +func (o GetUrlsUrlsOutput) Iso() pulumi.StringOutput { + return o.ApplyT(func(v GetUrlsUrls) string { return v.Iso }).(pulumi.StringOutput) +} + +// The URL for the ISO image with secure boot. +func (o GetUrlsUrlsOutput) IsoSecureboot() pulumi.StringOutput { + return o.ApplyT(func(v GetUrlsUrls) string { return v.IsoSecureboot }).(pulumi.StringOutput) +} + +// The URL for the kernel image. +func (o GetUrlsUrlsOutput) Kernel() pulumi.StringOutput { + return o.ApplyT(func(v GetUrlsUrls) string { return v.Kernel }).(pulumi.StringOutput) +} + +// The URL for the kernel command line. +func (o GetUrlsUrlsOutput) KernelCommandLine() pulumi.StringOutput { + return o.ApplyT(func(v GetUrlsUrls) string { return v.KernelCommandLine }).(pulumi.StringOutput) +} + +// The URL for the PXE image. +func (o GetUrlsUrlsOutput) Pxe() pulumi.StringOutput { + return o.ApplyT(func(v GetUrlsUrls) string { return v.Pxe }).(pulumi.StringOutput) +} + +// The URL for the UKI image. +func (o GetUrlsUrlsOutput) Uki() pulumi.StringOutput { + return o.ApplyT(func(v GetUrlsUrls) string { return v.Uki }).(pulumi.StringOutput) +} + +type GetVersionsFilters struct { + // If set to true, only stable versions will be returned. If set to false, all versions will be returned. + StableVersionsOnly *bool `pulumi:"stableVersionsOnly"` +} + +// GetVersionsFiltersInput is an input type that accepts GetVersionsFiltersArgs and GetVersionsFiltersOutput values. +// You can construct a concrete instance of `GetVersionsFiltersInput` via: +// +// GetVersionsFiltersArgs{...} +type GetVersionsFiltersInput interface { + pulumi.Input + + ToGetVersionsFiltersOutput() GetVersionsFiltersOutput + ToGetVersionsFiltersOutputWithContext(context.Context) GetVersionsFiltersOutput +} + +type GetVersionsFiltersArgs struct { + // If set to true, only stable versions will be returned. If set to false, all versions will be returned. + StableVersionsOnly pulumi.BoolPtrInput `pulumi:"stableVersionsOnly"` +} + +func (GetVersionsFiltersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetVersionsFilters)(nil)).Elem() +} + +func (i GetVersionsFiltersArgs) ToGetVersionsFiltersOutput() GetVersionsFiltersOutput { + return i.ToGetVersionsFiltersOutputWithContext(context.Background()) +} + +func (i GetVersionsFiltersArgs) ToGetVersionsFiltersOutputWithContext(ctx context.Context) GetVersionsFiltersOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetVersionsFiltersOutput) +} + +func (i GetVersionsFiltersArgs) ToGetVersionsFiltersPtrOutput() GetVersionsFiltersPtrOutput { + return i.ToGetVersionsFiltersPtrOutputWithContext(context.Background()) +} + +func (i GetVersionsFiltersArgs) ToGetVersionsFiltersPtrOutputWithContext(ctx context.Context) GetVersionsFiltersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetVersionsFiltersOutput).ToGetVersionsFiltersPtrOutputWithContext(ctx) +} + +// GetVersionsFiltersPtrInput is an input type that accepts GetVersionsFiltersArgs, GetVersionsFiltersPtr and GetVersionsFiltersPtrOutput values. +// You can construct a concrete instance of `GetVersionsFiltersPtrInput` via: +// +// GetVersionsFiltersArgs{...} +// +// or: +// +// nil +type GetVersionsFiltersPtrInput interface { + pulumi.Input + + ToGetVersionsFiltersPtrOutput() GetVersionsFiltersPtrOutput + ToGetVersionsFiltersPtrOutputWithContext(context.Context) GetVersionsFiltersPtrOutput +} + +type getVersionsFiltersPtrType GetVersionsFiltersArgs + +func GetVersionsFiltersPtr(v *GetVersionsFiltersArgs) GetVersionsFiltersPtrInput { + return (*getVersionsFiltersPtrType)(v) +} + +func (*getVersionsFiltersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GetVersionsFilters)(nil)).Elem() +} + +func (i *getVersionsFiltersPtrType) ToGetVersionsFiltersPtrOutput() GetVersionsFiltersPtrOutput { + return i.ToGetVersionsFiltersPtrOutputWithContext(context.Background()) +} + +func (i *getVersionsFiltersPtrType) ToGetVersionsFiltersPtrOutputWithContext(ctx context.Context) GetVersionsFiltersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetVersionsFiltersPtrOutput) +} + +type GetVersionsFiltersOutput struct{ *pulumi.OutputState } + +func (GetVersionsFiltersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetVersionsFilters)(nil)).Elem() +} + +func (o GetVersionsFiltersOutput) ToGetVersionsFiltersOutput() GetVersionsFiltersOutput { + return o +} + +func (o GetVersionsFiltersOutput) ToGetVersionsFiltersOutputWithContext(ctx context.Context) GetVersionsFiltersOutput { + return o +} + +func (o GetVersionsFiltersOutput) ToGetVersionsFiltersPtrOutput() GetVersionsFiltersPtrOutput { + return o.ToGetVersionsFiltersPtrOutputWithContext(context.Background()) +} + +func (o GetVersionsFiltersOutput) ToGetVersionsFiltersPtrOutputWithContext(ctx context.Context) GetVersionsFiltersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GetVersionsFilters) *GetVersionsFilters { + return &v + }).(GetVersionsFiltersPtrOutput) +} + +// If set to true, only stable versions will be returned. If set to false, all versions will be returned. +func (o GetVersionsFiltersOutput) StableVersionsOnly() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetVersionsFilters) *bool { return v.StableVersionsOnly }).(pulumi.BoolPtrOutput) +} + +type GetVersionsFiltersPtrOutput struct{ *pulumi.OutputState } + +func (GetVersionsFiltersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GetVersionsFilters)(nil)).Elem() +} + +func (o GetVersionsFiltersPtrOutput) ToGetVersionsFiltersPtrOutput() GetVersionsFiltersPtrOutput { + return o +} + +func (o GetVersionsFiltersPtrOutput) ToGetVersionsFiltersPtrOutputWithContext(ctx context.Context) GetVersionsFiltersPtrOutput { + return o +} + +func (o GetVersionsFiltersPtrOutput) Elem() GetVersionsFiltersOutput { + return o.ApplyT(func(v *GetVersionsFilters) GetVersionsFilters { + if v != nil { + return *v + } + var ret GetVersionsFilters + return ret + }).(GetVersionsFiltersOutput) +} + +// If set to true, only stable versions will be returned. If set to false, all versions will be returned. +func (o GetVersionsFiltersPtrOutput) StableVersionsOnly() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *GetVersionsFilters) *bool { + if v == nil { + return nil + } + return v.StableVersionsOnly + }).(pulumi.BoolPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GetExtensionsVersionsExtensionsInfoInput)(nil)).Elem(), GetExtensionsVersionsExtensionsInfoArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetExtensionsVersionsExtensionsInfoArrayInput)(nil)).Elem(), GetExtensionsVersionsExtensionsInfoArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetExtensionsVersionsFiltersInput)(nil)).Elem(), GetExtensionsVersionsFiltersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetExtensionsVersionsFiltersPtrInput)(nil)).Elem(), GetExtensionsVersionsFiltersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetOverlaysVersionsFiltersInput)(nil)).Elem(), GetOverlaysVersionsFiltersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetOverlaysVersionsFiltersPtrInput)(nil)).Elem(), GetOverlaysVersionsFiltersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetOverlaysVersionsOverlaysInfoInput)(nil)).Elem(), GetOverlaysVersionsOverlaysInfoArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetOverlaysVersionsOverlaysInfoArrayInput)(nil)).Elem(), GetOverlaysVersionsOverlaysInfoArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetUrlsUrlsInput)(nil)).Elem(), GetUrlsUrlsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetVersionsFiltersInput)(nil)).Elem(), GetVersionsFiltersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetVersionsFiltersPtrInput)(nil)).Elem(), GetVersionsFiltersArgs{}) + pulumi.RegisterOutputType(GetExtensionsVersionsExtensionsInfoOutput{}) + pulumi.RegisterOutputType(GetExtensionsVersionsExtensionsInfoArrayOutput{}) + pulumi.RegisterOutputType(GetExtensionsVersionsFiltersOutput{}) + pulumi.RegisterOutputType(GetExtensionsVersionsFiltersPtrOutput{}) + pulumi.RegisterOutputType(GetOverlaysVersionsFiltersOutput{}) + pulumi.RegisterOutputType(GetOverlaysVersionsFiltersPtrOutput{}) + pulumi.RegisterOutputType(GetOverlaysVersionsOverlaysInfoOutput{}) + pulumi.RegisterOutputType(GetOverlaysVersionsOverlaysInfoArrayOutput{}) + pulumi.RegisterOutputType(GetUrlsUrlsOutput{}) + pulumi.RegisterOutputType(GetVersionsFiltersOutput{}) + pulumi.RegisterOutputType(GetVersionsFiltersPtrOutput{}) +} diff --git a/sdk/go/talos/imagefactory/schematic.go b/sdk/go/talos/imagefactory/schematic.go new file mode 100644 index 00000000..0956086f --- /dev/null +++ b/sdk/go/talos/imagefactory/schematic.go @@ -0,0 +1,215 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package imagefactory + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal" +) + +// The image factory schematic resource allows you to create a schematic for a Talos image. +type Schematic struct { + pulumi.CustomResourceState + + // The schematic yaml respresentation to generate the image. + Schematic pulumi.StringPtrOutput `pulumi:"schematic"` +} + +// NewSchematic registers a new resource with the given unique name, arguments, and options. +func NewSchematic(ctx *pulumi.Context, + name string, args *SchematicArgs, opts ...pulumi.ResourceOption) (*Schematic, error) { + if args == nil { + args = &SchematicArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource Schematic + err := ctx.RegisterResource("talos:imageFactory/schematic:Schematic", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetSchematic gets an existing Schematic resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetSchematic(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *SchematicState, opts ...pulumi.ResourceOption) (*Schematic, error) { + var resource Schematic + err := ctx.ReadResource("talos:imageFactory/schematic:Schematic", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Schematic resources. +type schematicState struct { + // The schematic yaml respresentation to generate the image. + Schematic *string `pulumi:"schematic"` +} + +type SchematicState struct { + // The schematic yaml respresentation to generate the image. + Schematic pulumi.StringPtrInput +} + +func (SchematicState) ElementType() reflect.Type { + return reflect.TypeOf((*schematicState)(nil)).Elem() +} + +type schematicArgs struct { + // The schematic yaml respresentation to generate the image. + Schematic *string `pulumi:"schematic"` +} + +// The set of arguments for constructing a Schematic resource. +type SchematicArgs struct { + // The schematic yaml respresentation to generate the image. + Schematic pulumi.StringPtrInput +} + +func (SchematicArgs) ElementType() reflect.Type { + return reflect.TypeOf((*schematicArgs)(nil)).Elem() +} + +type SchematicInput interface { + pulumi.Input + + ToSchematicOutput() SchematicOutput + ToSchematicOutputWithContext(ctx context.Context) SchematicOutput +} + +func (*Schematic) ElementType() reflect.Type { + return reflect.TypeOf((**Schematic)(nil)).Elem() +} + +func (i *Schematic) ToSchematicOutput() SchematicOutput { + return i.ToSchematicOutputWithContext(context.Background()) +} + +func (i *Schematic) ToSchematicOutputWithContext(ctx context.Context) SchematicOutput { + return pulumi.ToOutputWithContext(ctx, i).(SchematicOutput) +} + +// SchematicArrayInput is an input type that accepts SchematicArray and SchematicArrayOutput values. +// You can construct a concrete instance of `SchematicArrayInput` via: +// +// SchematicArray{ SchematicArgs{...} } +type SchematicArrayInput interface { + pulumi.Input + + ToSchematicArrayOutput() SchematicArrayOutput + ToSchematicArrayOutputWithContext(context.Context) SchematicArrayOutput +} + +type SchematicArray []SchematicInput + +func (SchematicArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Schematic)(nil)).Elem() +} + +func (i SchematicArray) ToSchematicArrayOutput() SchematicArrayOutput { + return i.ToSchematicArrayOutputWithContext(context.Background()) +} + +func (i SchematicArray) ToSchematicArrayOutputWithContext(ctx context.Context) SchematicArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SchematicArrayOutput) +} + +// SchematicMapInput is an input type that accepts SchematicMap and SchematicMapOutput values. +// You can construct a concrete instance of `SchematicMapInput` via: +// +// SchematicMap{ "key": SchematicArgs{...} } +type SchematicMapInput interface { + pulumi.Input + + ToSchematicMapOutput() SchematicMapOutput + ToSchematicMapOutputWithContext(context.Context) SchematicMapOutput +} + +type SchematicMap map[string]SchematicInput + +func (SchematicMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Schematic)(nil)).Elem() +} + +func (i SchematicMap) ToSchematicMapOutput() SchematicMapOutput { + return i.ToSchematicMapOutputWithContext(context.Background()) +} + +func (i SchematicMap) ToSchematicMapOutputWithContext(ctx context.Context) SchematicMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(SchematicMapOutput) +} + +type SchematicOutput struct{ *pulumi.OutputState } + +func (SchematicOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Schematic)(nil)).Elem() +} + +func (o SchematicOutput) ToSchematicOutput() SchematicOutput { + return o +} + +func (o SchematicOutput) ToSchematicOutputWithContext(ctx context.Context) SchematicOutput { + return o +} + +// The schematic yaml respresentation to generate the image. +func (o SchematicOutput) Schematic() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Schematic) pulumi.StringPtrOutput { return v.Schematic }).(pulumi.StringPtrOutput) +} + +type SchematicArrayOutput struct{ *pulumi.OutputState } + +func (SchematicArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Schematic)(nil)).Elem() +} + +func (o SchematicArrayOutput) ToSchematicArrayOutput() SchematicArrayOutput { + return o +} + +func (o SchematicArrayOutput) ToSchematicArrayOutputWithContext(ctx context.Context) SchematicArrayOutput { + return o +} + +func (o SchematicArrayOutput) Index(i pulumi.IntInput) SchematicOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Schematic { + return vs[0].([]*Schematic)[vs[1].(int)] + }).(SchematicOutput) +} + +type SchematicMapOutput struct{ *pulumi.OutputState } + +func (SchematicMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Schematic)(nil)).Elem() +} + +func (o SchematicMapOutput) ToSchematicMapOutput() SchematicMapOutput { + return o +} + +func (o SchematicMapOutput) ToSchematicMapOutputWithContext(ctx context.Context) SchematicMapOutput { + return o +} + +func (o SchematicMapOutput) MapIndex(k pulumi.StringInput) SchematicOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Schematic { + return vs[0].(map[string]*Schematic)[vs[1].(string)] + }).(SchematicOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*SchematicInput)(nil)).Elem(), &Schematic{}) + pulumi.RegisterInputType(reflect.TypeOf((*SchematicArrayInput)(nil)).Elem(), SchematicArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SchematicMapInput)(nil)).Elem(), SchematicMap{}) + pulumi.RegisterOutputType(SchematicOutput{}) + pulumi.RegisterOutputType(SchematicArrayOutput{}) + pulumi.RegisterOutputType(SchematicMapOutput{}) +} diff --git a/sdk/go/talos/machine/configurationApply.go b/sdk/go/talos/machine/configurationApply.go index 8c616f13..a6083c9d 100644 --- a/sdk/go/talos/machine/configurationApply.go +++ b/sdk/go/talos/machine/configurationApply.go @@ -29,8 +29,10 @@ type ConfigurationApply struct { // The machine configuration to apply MachineConfigurationInput pulumi.StringOutput `pulumi:"machineConfigurationInput"` // The name of the node to bootstrap - Node pulumi.StringOutput `pulumi:"node"` - Timeouts TimeoutPtrOutput `pulumi:"timeouts"` + Node pulumi.StringOutput `pulumi:"node"` + // Actions to be taken on destroy, if *reset* is not set this is a no-op. + OnDestroy ConfigurationApplyOnDestroyPtrOutput `pulumi:"onDestroy"` + Timeouts TimeoutPtrOutput `pulumi:"timeouts"` } // NewConfigurationApply registers a new resource with the given unique name, arguments, and options. @@ -93,8 +95,10 @@ type configurationApplyState struct { // The machine configuration to apply MachineConfigurationInput *string `pulumi:"machineConfigurationInput"` // The name of the node to bootstrap - Node *string `pulumi:"node"` - Timeouts *Timeout `pulumi:"timeouts"` + Node *string `pulumi:"node"` + // Actions to be taken on destroy, if *reset* is not set this is a no-op. + OnDestroy *ConfigurationApplyOnDestroy `pulumi:"onDestroy"` + Timeouts *Timeout `pulumi:"timeouts"` } type ConfigurationApplyState struct { @@ -111,8 +115,10 @@ type ConfigurationApplyState struct { // The machine configuration to apply MachineConfigurationInput pulumi.StringPtrInput // The name of the node to bootstrap - Node pulumi.StringPtrInput - Timeouts TimeoutPtrInput + Node pulumi.StringPtrInput + // Actions to be taken on destroy, if *reset* is not set this is a no-op. + OnDestroy ConfigurationApplyOnDestroyPtrInput + Timeouts TimeoutPtrInput } func (ConfigurationApplyState) ElementType() reflect.Type { @@ -131,8 +137,10 @@ type configurationApplyArgs struct { // The machine configuration to apply MachineConfigurationInput string `pulumi:"machineConfigurationInput"` // The name of the node to bootstrap - Node string `pulumi:"node"` - Timeouts *Timeout `pulumi:"timeouts"` + Node string `pulumi:"node"` + // Actions to be taken on destroy, if *reset* is not set this is a no-op. + OnDestroy *ConfigurationApplyOnDestroy `pulumi:"onDestroy"` + Timeouts *Timeout `pulumi:"timeouts"` } // The set of arguments for constructing a ConfigurationApply resource. @@ -148,8 +156,10 @@ type ConfigurationApplyArgs struct { // The machine configuration to apply MachineConfigurationInput pulumi.StringInput // The name of the node to bootstrap - Node pulumi.StringInput - Timeouts TimeoutPtrInput + Node pulumi.StringInput + // Actions to be taken on destroy, if *reset* is not set this is a no-op. + OnDestroy ConfigurationApplyOnDestroyPtrInput + Timeouts TimeoutPtrInput } func (ConfigurationApplyArgs) ElementType() reflect.Type { @@ -274,6 +284,11 @@ func (o ConfigurationApplyOutput) Node() pulumi.StringOutput { return o.ApplyT(func(v *ConfigurationApply) pulumi.StringOutput { return v.Node }).(pulumi.StringOutput) } +// Actions to be taken on destroy, if *reset* is not set this is a no-op. +func (o ConfigurationApplyOutput) OnDestroy() ConfigurationApplyOnDestroyPtrOutput { + return o.ApplyT(func(v *ConfigurationApply) ConfigurationApplyOnDestroyPtrOutput { return v.OnDestroy }).(ConfigurationApplyOnDestroyPtrOutput) +} + func (o ConfigurationApplyOutput) Timeouts() TimeoutPtrOutput { return o.ApplyT(func(v *ConfigurationApply) TimeoutPtrOutput { return v.Timeouts }).(TimeoutPtrOutput) } diff --git a/sdk/go/talos/machine/getConfiguration.go b/sdk/go/talos/machine/getConfiguration.go index 394df28a..22285684 100644 --- a/sdk/go/talos/machine/getConfiguration.go +++ b/sdk/go/talos/machine/getConfiguration.go @@ -62,9 +62,9 @@ type GetConfigurationArgs struct { ClusterName string `pulumi:"clusterName"` // The list of config patches to apply to the generated configuration ConfigPatches []string `pulumi:"configPatches"` - // Whether to generate documentation for the generated configuration + // Whether to generate documentation for the generated configuration. Defaults to false Docs *bool `pulumi:"docs"` - // Whether to generate examples for the generated configuration + // Whether to generate examples for the generated configuration. Defaults to false Examples *bool `pulumi:"examples"` // The version of kubernetes to use KubernetesVersion *string `pulumi:"kubernetesVersion"` @@ -84,9 +84,9 @@ type GetConfigurationResult struct { ClusterName string `pulumi:"clusterName"` // The list of config patches to apply to the generated configuration ConfigPatches []string `pulumi:"configPatches"` - // Whether to generate documentation for the generated configuration + // Whether to generate documentation for the generated configuration. Defaults to false Docs *bool `pulumi:"docs"` - // Whether to generate examples for the generated configuration + // Whether to generate examples for the generated configuration. Defaults to false Examples *bool `pulumi:"examples"` // The ID of this resource. Id string `pulumi:"id"` @@ -129,9 +129,9 @@ type GetConfigurationOutputArgs struct { ClusterName pulumi.StringInput `pulumi:"clusterName"` // The list of config patches to apply to the generated configuration ConfigPatches pulumi.StringArrayInput `pulumi:"configPatches"` - // Whether to generate documentation for the generated configuration + // Whether to generate documentation for the generated configuration. Defaults to false Docs pulumi.BoolPtrInput `pulumi:"docs"` - // Whether to generate examples for the generated configuration + // Whether to generate examples for the generated configuration. Defaults to false Examples pulumi.BoolPtrInput `pulumi:"examples"` // The version of kubernetes to use KubernetesVersion pulumi.StringPtrInput `pulumi:"kubernetesVersion"` @@ -177,12 +177,12 @@ func (o GetConfigurationResultOutput) ConfigPatches() pulumi.StringArrayOutput { return o.ApplyT(func(v GetConfigurationResult) []string { return v.ConfigPatches }).(pulumi.StringArrayOutput) } -// Whether to generate documentation for the generated configuration +// Whether to generate documentation for the generated configuration. Defaults to false func (o GetConfigurationResultOutput) Docs() pulumi.BoolPtrOutput { return o.ApplyT(func(v GetConfigurationResult) *bool { return v.Docs }).(pulumi.BoolPtrOutput) } -// Whether to generate examples for the generated configuration +// Whether to generate examples for the generated configuration. Defaults to false func (o GetConfigurationResultOutput) Examples() pulumi.BoolPtrOutput { return o.ApplyT(func(v GetConfigurationResult) *bool { return v.Examples }).(pulumi.BoolPtrOutput) } diff --git a/sdk/go/talos/machine/pulumiTypes.go b/sdk/go/talos/machine/pulumiTypes.go index 36d60680..284c2303 100644 --- a/sdk/go/talos/machine/pulumiTypes.go +++ b/sdk/go/talos/machine/pulumiTypes.go @@ -290,6 +290,181 @@ func (o ConfigurationApplyClientConfigurationOutput) ClientKey() pulumi.StringOu return o.ApplyT(func(v ConfigurationApplyClientConfiguration) string { return v.ClientKey }).(pulumi.StringOutput) } +type ConfigurationApplyOnDestroy struct { + // Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true + Graceful *bool `pulumi:"graceful"` + // Reboot indicates whether node should reboot or halt after resetting. Default false + Reboot *bool `pulumi:"reboot"` + // Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false + Reset *bool `pulumi:"reset"` +} + +// ConfigurationApplyOnDestroyInput is an input type that accepts ConfigurationApplyOnDestroyArgs and ConfigurationApplyOnDestroyOutput values. +// You can construct a concrete instance of `ConfigurationApplyOnDestroyInput` via: +// +// ConfigurationApplyOnDestroyArgs{...} +type ConfigurationApplyOnDestroyInput interface { + pulumi.Input + + ToConfigurationApplyOnDestroyOutput() ConfigurationApplyOnDestroyOutput + ToConfigurationApplyOnDestroyOutputWithContext(context.Context) ConfigurationApplyOnDestroyOutput +} + +type ConfigurationApplyOnDestroyArgs struct { + // Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true + Graceful pulumi.BoolPtrInput `pulumi:"graceful"` + // Reboot indicates whether node should reboot or halt after resetting. Default false + Reboot pulumi.BoolPtrInput `pulumi:"reboot"` + // Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false + Reset pulumi.BoolPtrInput `pulumi:"reset"` +} + +func (ConfigurationApplyOnDestroyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ConfigurationApplyOnDestroy)(nil)).Elem() +} + +func (i ConfigurationApplyOnDestroyArgs) ToConfigurationApplyOnDestroyOutput() ConfigurationApplyOnDestroyOutput { + return i.ToConfigurationApplyOnDestroyOutputWithContext(context.Background()) +} + +func (i ConfigurationApplyOnDestroyArgs) ToConfigurationApplyOnDestroyOutputWithContext(ctx context.Context) ConfigurationApplyOnDestroyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConfigurationApplyOnDestroyOutput) +} + +func (i ConfigurationApplyOnDestroyArgs) ToConfigurationApplyOnDestroyPtrOutput() ConfigurationApplyOnDestroyPtrOutput { + return i.ToConfigurationApplyOnDestroyPtrOutputWithContext(context.Background()) +} + +func (i ConfigurationApplyOnDestroyArgs) ToConfigurationApplyOnDestroyPtrOutputWithContext(ctx context.Context) ConfigurationApplyOnDestroyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConfigurationApplyOnDestroyOutput).ToConfigurationApplyOnDestroyPtrOutputWithContext(ctx) +} + +// ConfigurationApplyOnDestroyPtrInput is an input type that accepts ConfigurationApplyOnDestroyArgs, ConfigurationApplyOnDestroyPtr and ConfigurationApplyOnDestroyPtrOutput values. +// You can construct a concrete instance of `ConfigurationApplyOnDestroyPtrInput` via: +// +// ConfigurationApplyOnDestroyArgs{...} +// +// or: +// +// nil +type ConfigurationApplyOnDestroyPtrInput interface { + pulumi.Input + + ToConfigurationApplyOnDestroyPtrOutput() ConfigurationApplyOnDestroyPtrOutput + ToConfigurationApplyOnDestroyPtrOutputWithContext(context.Context) ConfigurationApplyOnDestroyPtrOutput +} + +type configurationApplyOnDestroyPtrType ConfigurationApplyOnDestroyArgs + +func ConfigurationApplyOnDestroyPtr(v *ConfigurationApplyOnDestroyArgs) ConfigurationApplyOnDestroyPtrInput { + return (*configurationApplyOnDestroyPtrType)(v) +} + +func (*configurationApplyOnDestroyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ConfigurationApplyOnDestroy)(nil)).Elem() +} + +func (i *configurationApplyOnDestroyPtrType) ToConfigurationApplyOnDestroyPtrOutput() ConfigurationApplyOnDestroyPtrOutput { + return i.ToConfigurationApplyOnDestroyPtrOutputWithContext(context.Background()) +} + +func (i *configurationApplyOnDestroyPtrType) ToConfigurationApplyOnDestroyPtrOutputWithContext(ctx context.Context) ConfigurationApplyOnDestroyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConfigurationApplyOnDestroyPtrOutput) +} + +type ConfigurationApplyOnDestroyOutput struct{ *pulumi.OutputState } + +func (ConfigurationApplyOnDestroyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ConfigurationApplyOnDestroy)(nil)).Elem() +} + +func (o ConfigurationApplyOnDestroyOutput) ToConfigurationApplyOnDestroyOutput() ConfigurationApplyOnDestroyOutput { + return o +} + +func (o ConfigurationApplyOnDestroyOutput) ToConfigurationApplyOnDestroyOutputWithContext(ctx context.Context) ConfigurationApplyOnDestroyOutput { + return o +} + +func (o ConfigurationApplyOnDestroyOutput) ToConfigurationApplyOnDestroyPtrOutput() ConfigurationApplyOnDestroyPtrOutput { + return o.ToConfigurationApplyOnDestroyPtrOutputWithContext(context.Background()) +} + +func (o ConfigurationApplyOnDestroyOutput) ToConfigurationApplyOnDestroyPtrOutputWithContext(ctx context.Context) ConfigurationApplyOnDestroyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ConfigurationApplyOnDestroy) *ConfigurationApplyOnDestroy { + return &v + }).(ConfigurationApplyOnDestroyPtrOutput) +} + +// Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true +func (o ConfigurationApplyOnDestroyOutput) Graceful() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ConfigurationApplyOnDestroy) *bool { return v.Graceful }).(pulumi.BoolPtrOutput) +} + +// Reboot indicates whether node should reboot or halt after resetting. Default false +func (o ConfigurationApplyOnDestroyOutput) Reboot() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ConfigurationApplyOnDestroy) *bool { return v.Reboot }).(pulumi.BoolPtrOutput) +} + +// Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false +func (o ConfigurationApplyOnDestroyOutput) Reset() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ConfigurationApplyOnDestroy) *bool { return v.Reset }).(pulumi.BoolPtrOutput) +} + +type ConfigurationApplyOnDestroyPtrOutput struct{ *pulumi.OutputState } + +func (ConfigurationApplyOnDestroyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ConfigurationApplyOnDestroy)(nil)).Elem() +} + +func (o ConfigurationApplyOnDestroyPtrOutput) ToConfigurationApplyOnDestroyPtrOutput() ConfigurationApplyOnDestroyPtrOutput { + return o +} + +func (o ConfigurationApplyOnDestroyPtrOutput) ToConfigurationApplyOnDestroyPtrOutputWithContext(ctx context.Context) ConfigurationApplyOnDestroyPtrOutput { + return o +} + +func (o ConfigurationApplyOnDestroyPtrOutput) Elem() ConfigurationApplyOnDestroyOutput { + return o.ApplyT(func(v *ConfigurationApplyOnDestroy) ConfigurationApplyOnDestroy { + if v != nil { + return *v + } + var ret ConfigurationApplyOnDestroy + return ret + }).(ConfigurationApplyOnDestroyOutput) +} + +// Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true +func (o ConfigurationApplyOnDestroyPtrOutput) Graceful() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ConfigurationApplyOnDestroy) *bool { + if v == nil { + return nil + } + return v.Graceful + }).(pulumi.BoolPtrOutput) +} + +// Reboot indicates whether node should reboot or halt after resetting. Default false +func (o ConfigurationApplyOnDestroyPtrOutput) Reboot() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ConfigurationApplyOnDestroy) *bool { + if v == nil { + return nil + } + return v.Reboot + }).(pulumi.BoolPtrOutput) +} + +// Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false +func (o ConfigurationApplyOnDestroyPtrOutput) Reset() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ConfigurationApplyOnDestroy) *bool { + if v == nil { + return nil + } + return v.Reset + }).(pulumi.BoolPtrOutput) +} + type SecretsClientConfiguration struct { // The client CA certificate CaCertificate *string `pulumi:"caCertificate"` @@ -1883,6 +2058,8 @@ func (o SecretsMachineSecretsTrustdinfoPtrOutput) Token() pulumi.StringPtrOutput type Timeout struct { // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Create *string `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete *string `pulumi:"delete"` // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Update *string `pulumi:"update"` } @@ -1901,6 +2078,8 @@ type TimeoutInput interface { type TimeoutArgs struct { // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Create pulumi.StringPtrInput `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete pulumi.StringPtrInput `pulumi:"delete"` // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Update pulumi.StringPtrInput `pulumi:"update"` } @@ -1987,6 +2166,11 @@ func (o TimeoutOutput) Create() pulumi.StringPtrOutput { return o.ApplyT(func(v Timeout) *string { return v.Create }).(pulumi.StringPtrOutput) } +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o TimeoutOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v Timeout) *string { return v.Delete }).(pulumi.StringPtrOutput) +} + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). func (o TimeoutOutput) Update() pulumi.StringPtrOutput { return o.ApplyT(func(v Timeout) *string { return v.Update }).(pulumi.StringPtrOutput) @@ -2026,6 +2210,16 @@ func (o TimeoutPtrOutput) Create() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o TimeoutPtrOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Timeout) *string { + if v == nil { + return nil + } + return v.Delete + }).(pulumi.StringPtrOutput) +} + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). func (o TimeoutPtrOutput) Update() pulumi.StringPtrOutput { return o.ApplyT(func(v *Timeout) *string { @@ -4684,6 +4878,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*BootstrapTimeoutsInput)(nil)).Elem(), BootstrapTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BootstrapTimeoutsPtrInput)(nil)).Elem(), BootstrapTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConfigurationApplyClientConfigurationInput)(nil)).Elem(), ConfigurationApplyClientConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConfigurationApplyOnDestroyInput)(nil)).Elem(), ConfigurationApplyOnDestroyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConfigurationApplyOnDestroyPtrInput)(nil)).Elem(), ConfigurationApplyOnDestroyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecretsClientConfigurationInput)(nil)).Elem(), SecretsClientConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecretsMachineSecretsInput)(nil)).Elem(), SecretsMachineSecretsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecretsMachineSecretsCertsInput)(nil)).Elem(), SecretsMachineSecretsCertsArgs{}) @@ -4743,6 +4939,8 @@ func init() { pulumi.RegisterOutputType(BootstrapTimeoutsOutput{}) pulumi.RegisterOutputType(BootstrapTimeoutsPtrOutput{}) pulumi.RegisterOutputType(ConfigurationApplyClientConfigurationOutput{}) + pulumi.RegisterOutputType(ConfigurationApplyOnDestroyOutput{}) + pulumi.RegisterOutputType(ConfigurationApplyOnDestroyPtrOutput{}) pulumi.RegisterOutputType(SecretsClientConfigurationOutput{}) pulumi.RegisterOutputType(SecretsMachineSecretsOutput{}) pulumi.RegisterOutputType(SecretsMachineSecretsCertsOutput{}) diff --git a/sdk/go/talos/provider.go b/sdk/go/talos/provider.go index 53a56682..a568be48 100644 --- a/sdk/go/talos/provider.go +++ b/sdk/go/talos/provider.go @@ -17,6 +17,9 @@ import ( // [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information. type Provider struct { pulumi.ProviderResourceState + + // The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev. + ImageFactoryUrl pulumi.StringPtrOutput `pulumi:"imageFactoryUrl"` } // NewProvider registers a new resource with the given unique name, arguments, and options. @@ -36,10 +39,14 @@ func NewProvider(ctx *pulumi.Context, } type providerArgs struct { + // The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev. + ImageFactoryUrl *string `pulumi:"imageFactoryUrl"` } // The set of arguments for constructing a Provider resource. type ProviderArgs struct { + // The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev. + ImageFactoryUrl pulumi.StringPtrInput } func (ProviderArgs) ElementType() reflect.Type { @@ -79,6 +86,11 @@ func (o ProviderOutput) ToProviderOutputWithContext(ctx context.Context) Provide return o } +// The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev. +func (o ProviderOutput) ImageFactoryUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.ImageFactoryUrl }).(pulumi.StringPtrOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*ProviderInput)(nil)).Elem(), &Provider{}) pulumi.RegisterOutputType(ProviderOutput{}) diff --git a/sdk/nodejs/cluster/getHealth.ts b/sdk/nodejs/cluster/getHealth.ts index dad8cb12..df993d0c 100644 --- a/sdk/nodejs/cluster/getHealth.ts +++ b/sdk/nodejs/cluster/getHealth.ts @@ -7,7 +7,7 @@ import * as outputs from "../types/output"; import * as utilities from "../utilities"; /** - * Checks the health of a Talos cluster + * Waits for the Talos cluster to be healthy. Can be used as a dependency before running other operations on the cluster. */ export function getHealth(args: GetHealthArgs, opts?: pulumi.InvokeOptions): Promise { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); @@ -15,6 +15,7 @@ export function getHealth(args: GetHealthArgs, opts?: pulumi.InvokeOptions): Pro "clientConfiguration": args.clientConfiguration, "controlPlaneNodes": args.controlPlaneNodes, "endpoints": args.endpoints, + "skipKubernetesChecks": args.skipKubernetesChecks, "timeouts": args.timeouts, "workerNodes": args.workerNodes, }, opts); @@ -36,6 +37,10 @@ export interface GetHealthArgs { * endpoints to use for the health check client. Use at least one control plane endpoint. */ endpoints: string[]; + /** + * Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false. + */ + skipKubernetesChecks?: boolean; timeouts?: inputs.cluster.GetHealthTimeouts; /** * List of worker nodes to check for health. @@ -63,6 +68,10 @@ export interface GetHealthResult { * The ID of this resource. */ readonly id: string; + /** + * Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false. + */ + readonly skipKubernetesChecks?: boolean; readonly timeouts?: outputs.cluster.GetHealthTimeouts; /** * List of worker nodes to check for health. @@ -70,7 +79,7 @@ export interface GetHealthResult { readonly workerNodes?: string[]; } /** - * Checks the health of a Talos cluster + * Waits for the Talos cluster to be healthy. Can be used as a dependency before running other operations on the cluster. */ export function getHealthOutput(args: GetHealthOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); @@ -78,6 +87,7 @@ export function getHealthOutput(args: GetHealthOutputArgs, opts?: pulumi.InvokeO "clientConfiguration": args.clientConfiguration, "controlPlaneNodes": args.controlPlaneNodes, "endpoints": args.endpoints, + "skipKubernetesChecks": args.skipKubernetesChecks, "timeouts": args.timeouts, "workerNodes": args.workerNodes, }, opts); @@ -99,6 +109,10 @@ export interface GetHealthOutputArgs { * endpoints to use for the health check client. Use at least one control plane endpoint. */ endpoints: pulumi.Input[]>; + /** + * Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false. + */ + skipKubernetesChecks?: pulumi.Input; timeouts?: pulumi.Input; /** * List of worker nodes to check for health. diff --git a/sdk/nodejs/cluster/index.ts b/sdk/nodejs/cluster/index.ts index edc62242..d69b2c2f 100644 --- a/sdk/nodejs/cluster/index.ts +++ b/sdk/nodejs/cluster/index.ts @@ -1,6 +1,7 @@ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** // *** Do not edit by hand unless you're certain you know what you are doing! *** +import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: @@ -14,3 +15,21 @@ export const getKubeconfig: typeof import("./getKubeconfig").getKubeconfig = nul export const getKubeconfigOutput: typeof import("./getKubeconfig").getKubeconfigOutput = null as any; utilities.lazyLoad(exports, ["getKubeconfig","getKubeconfigOutput"], () => require("./getKubeconfig")); +export { KubeconfigArgs, KubeconfigState } from "./kubeconfig"; +export type Kubeconfig = import("./kubeconfig").Kubeconfig; +export const Kubeconfig: typeof import("./kubeconfig").Kubeconfig = null as any; +utilities.lazyLoad(exports, ["Kubeconfig"], () => require("./kubeconfig")); + + +const _module = { + version: utilities.getVersion(), + construct: (name: string, type: string, urn: string): pulumi.Resource => { + switch (type) { + case "talos:cluster/kubeconfig:Kubeconfig": + return new Kubeconfig(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("talos", "cluster/kubeconfig", _module) diff --git a/sdk/nodejs/cluster/kubeconfig.ts b/sdk/nodejs/cluster/kubeconfig.ts new file mode 100644 index 00000000..96ffa85c --- /dev/null +++ b/sdk/nodejs/cluster/kubeconfig.ts @@ -0,0 +1,147 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * Retrieves the kubeconfig for a Talos cluster + */ +export class Kubeconfig extends pulumi.CustomResource { + /** + * Get an existing Kubeconfig resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: KubeconfigState, opts?: pulumi.CustomResourceOptions): Kubeconfig { + return new Kubeconfig(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'talos:cluster/kubeconfig:Kubeconfig'; + + /** + * Returns true if the given object is an instance of Kubeconfig. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Kubeconfig { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Kubeconfig.__pulumiType; + } + + /** + * The client configuration data + */ + public readonly clientConfiguration!: pulumi.Output; + /** + * endpoint to use for the talosclient. If not set, the node value will be used + */ + public readonly endpoint!: pulumi.Output; + /** + * The raw kubeconfig + */ + public /*out*/ readonly kubeconfigRaw!: pulumi.Output; + /** + * The kubernetes client configuration + */ + public /*out*/ readonly kubernetesClientConfiguration!: pulumi.Output; + /** + * controlplane node to retrieve the kubeconfig from + */ + public readonly node!: pulumi.Output; + public readonly timeouts!: pulumi.Output; + + /** + * Create a Kubeconfig resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: KubeconfigArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: KubeconfigArgs | KubeconfigState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as KubeconfigState | undefined; + resourceInputs["clientConfiguration"] = state ? state.clientConfiguration : undefined; + resourceInputs["endpoint"] = state ? state.endpoint : undefined; + resourceInputs["kubeconfigRaw"] = state ? state.kubeconfigRaw : undefined; + resourceInputs["kubernetesClientConfiguration"] = state ? state.kubernetesClientConfiguration : undefined; + resourceInputs["node"] = state ? state.node : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + } else { + const args = argsOrState as KubeconfigArgs | undefined; + if ((!args || args.clientConfiguration === undefined) && !opts.urn) { + throw new Error("Missing required property 'clientConfiguration'"); + } + if ((!args || args.node === undefined) && !opts.urn) { + throw new Error("Missing required property 'node'"); + } + resourceInputs["clientConfiguration"] = args ? args.clientConfiguration : undefined; + resourceInputs["endpoint"] = args ? args.endpoint : undefined; + resourceInputs["node"] = args ? args.node : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["kubeconfigRaw"] = undefined /*out*/; + resourceInputs["kubernetesClientConfiguration"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["kubeconfigRaw"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(Kubeconfig.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Kubeconfig resources. + */ +export interface KubeconfigState { + /** + * The client configuration data + */ + clientConfiguration?: pulumi.Input; + /** + * endpoint to use for the talosclient. If not set, the node value will be used + */ + endpoint?: pulumi.Input; + /** + * The raw kubeconfig + */ + kubeconfigRaw?: pulumi.Input; + /** + * The kubernetes client configuration + */ + kubernetesClientConfiguration?: pulumi.Input; + /** + * controlplane node to retrieve the kubeconfig from + */ + node?: pulumi.Input; + timeouts?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Kubeconfig resource. + */ +export interface KubeconfigArgs { + /** + * The client configuration data + */ + clientConfiguration: pulumi.Input; + /** + * endpoint to use for the talosclient. If not set, the node value will be used + */ + endpoint?: pulumi.Input; + /** + * controlplane node to retrieve the kubeconfig from + */ + node: pulumi.Input; + timeouts?: pulumi.Input; +} diff --git a/sdk/nodejs/config/index.ts b/sdk/nodejs/config/index.ts new file mode 100644 index 00000000..ed497ed0 --- /dev/null +++ b/sdk/nodejs/config/index.ts @@ -0,0 +1,5 @@ +// *** 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! *** + +// Export members: +export * from "./vars"; diff --git a/sdk/nodejs/config/vars.ts b/sdk/nodejs/config/vars.ts new file mode 100644 index 00000000..cef79460 --- /dev/null +++ b/sdk/nodejs/config/vars.ts @@ -0,0 +1,20 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +declare var exports: any; +const __config = new pulumi.Config("talos"); + +/** + * The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev. + */ +export declare const imageFactoryUrl: string | undefined; +Object.defineProperty(exports, "imageFactoryUrl", { + get() { + return __config.get("imageFactoryUrl"); + }, + enumerable: true, +}); + diff --git a/sdk/nodejs/imagefactory/getExtensionsVersions.ts b/sdk/nodejs/imagefactory/getExtensionsVersions.ts new file mode 100644 index 00000000..b18d57ea --- /dev/null +++ b/sdk/nodejs/imagefactory/getExtensionsVersions.ts @@ -0,0 +1,112 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * The image factory extensions versions data source provides a list of available extensions for a specific talos version from the image factory. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as talos from "@pulumi/talos"; + * + * const this = talos.imageFactory.getExtensionsVersions({ + * talosVersion: "v1.7.5", + * filters: { + * names: [ + * "amdgpu", + * "tailscale", + * ], + * }, + * }); + * ``` + */ +export function getExtensionsVersions(args: GetExtensionsVersionsArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("talos:imageFactory/getExtensionsVersions:getExtensionsVersions", { + "filters": args.filters, + "talosVersion": args.talosVersion, + }, opts); +} + +/** + * A collection of arguments for invoking getExtensionsVersions. + */ +export interface GetExtensionsVersionsArgs { + /** + * The filter to apply to the extensions list. + */ + filters?: inputs.imageFactory.GetExtensionsVersionsFilters; + /** + * The talos version to get extensions for. + */ + talosVersion: string; +} + +/** + * A collection of values returned by getExtensionsVersions. + */ +export interface GetExtensionsVersionsResult { + /** + * The list of available extensions for the specified talos version. + */ + readonly extensionsInfos: outputs.imageFactory.GetExtensionsVersionsExtensionsInfo[]; + /** + * The filter to apply to the extensions list. + */ + readonly filters?: outputs.imageFactory.GetExtensionsVersionsFilters; + /** + * The ID of this resource. + */ + readonly id: string; + /** + * The talos version to get extensions for. + */ + readonly talosVersion: string; +} +/** + * The image factory extensions versions data source provides a list of available extensions for a specific talos version from the image factory. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as talos from "@pulumi/talos"; + * + * const this = talos.imageFactory.getExtensionsVersions({ + * talosVersion: "v1.7.5", + * filters: { + * names: [ + * "amdgpu", + * "tailscale", + * ], + * }, + * }); + * ``` + */ +export function getExtensionsVersionsOutput(args: GetExtensionsVersionsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("talos:imageFactory/getExtensionsVersions:getExtensionsVersions", { + "filters": args.filters, + "talosVersion": args.talosVersion, + }, opts); +} + +/** + * A collection of arguments for invoking getExtensionsVersions. + */ +export interface GetExtensionsVersionsOutputArgs { + /** + * The filter to apply to the extensions list. + */ + filters?: pulumi.Input; + /** + * The talos version to get extensions for. + */ + talosVersion: pulumi.Input; +} diff --git a/sdk/nodejs/imagefactory/getOverlaysVersions.ts b/sdk/nodejs/imagefactory/getOverlaysVersions.ts new file mode 100644 index 00000000..8085e1f1 --- /dev/null +++ b/sdk/nodejs/imagefactory/getOverlaysVersions.ts @@ -0,0 +1,106 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * The image factory overlays versions data source provides a list of available overlays for a specific talos version from the image factory. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as talos from "@pulumi/talos"; + * + * const this = talos.imageFactory.getOverlaysVersions({ + * talosVersion: "v1.7.5", + * filters: { + * name: "rock4cplus", + * }, + * }); + * ``` + */ +export function getOverlaysVersions(args: GetOverlaysVersionsArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("talos:imageFactory/getOverlaysVersions:getOverlaysVersions", { + "filters": args.filters, + "talosVersion": args.talosVersion, + }, opts); +} + +/** + * A collection of arguments for invoking getOverlaysVersions. + */ +export interface GetOverlaysVersionsArgs { + /** + * The filter to apply to the overlays list. + */ + filters?: inputs.imageFactory.GetOverlaysVersionsFilters; + /** + * The talos version to get overlays for. + */ + talosVersion: string; +} + +/** + * A collection of values returned by getOverlaysVersions. + */ +export interface GetOverlaysVersionsResult { + /** + * The filter to apply to the overlays list. + */ + readonly filters?: outputs.imageFactory.GetOverlaysVersionsFilters; + /** + * The ID of this resource. + */ + readonly id: string; + /** + * The list of available extensions for the specified talos version. + */ + readonly overlaysInfos: outputs.imageFactory.GetOverlaysVersionsOverlaysInfo[]; + /** + * The talos version to get overlays for. + */ + readonly talosVersion: string; +} +/** + * The image factory overlays versions data source provides a list of available overlays for a specific talos version from the image factory. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as talos from "@pulumi/talos"; + * + * const this = talos.imageFactory.getOverlaysVersions({ + * talosVersion: "v1.7.5", + * filters: { + * name: "rock4cplus", + * }, + * }); + * ``` + */ +export function getOverlaysVersionsOutput(args: GetOverlaysVersionsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("talos:imageFactory/getOverlaysVersions:getOverlaysVersions", { + "filters": args.filters, + "talosVersion": args.talosVersion, + }, opts); +} + +/** + * A collection of arguments for invoking getOverlaysVersions. + */ +export interface GetOverlaysVersionsOutputArgs { + /** + * The filter to apply to the overlays list. + */ + filters?: pulumi.Input; + /** + * The talos version to get overlays for. + */ + talosVersion: pulumi.Input; +} diff --git a/sdk/nodejs/imagefactory/getUrls.ts b/sdk/nodejs/imagefactory/getUrls.ts new file mode 100644 index 00000000..c3454e7a --- /dev/null +++ b/sdk/nodejs/imagefactory/getUrls.ts @@ -0,0 +1,69 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * Generates URLs for different assets supported by the Talos image factory. + */ +export function getUrls(args: GetUrlsArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("talos:imageFactory/getUrls:getUrls", { + "architecture": args.architecture, + "platform": args.platform, + "sbc": args.sbc, + "schematicId": args.schematicId, + "talosVersion": args.talosVersion, + }, opts); +} + +/** + * A collection of arguments for invoking getUrls. + */ +export interface GetUrlsArgs { + architecture?: string; + platform?: string; + sbc?: string; + schematicId: string; + talosVersion: string; +} + +/** + * A collection of values returned by getUrls. + */ +export interface GetUrlsResult { + readonly architecture: string; + readonly id: string; + readonly platform?: string; + readonly sbc?: string; + readonly schematicId: string; + readonly talosVersion: string; + readonly urls: outputs.imageFactory.GetUrlsUrls; +} +/** + * Generates URLs for different assets supported by the Talos image factory. + */ +export function getUrlsOutput(args: GetUrlsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("talos:imageFactory/getUrls:getUrls", { + "architecture": args.architecture, + "platform": args.platform, + "sbc": args.sbc, + "schematicId": args.schematicId, + "talosVersion": args.talosVersion, + }, opts); +} + +/** + * A collection of arguments for invoking getUrls. + */ +export interface GetUrlsOutputArgs { + architecture?: pulumi.Input; + platform?: pulumi.Input; + sbc?: pulumi.Input; + schematicId: pulumi.Input; + talosVersion: pulumi.Input; +} diff --git a/sdk/nodejs/imagefactory/getVersions.ts b/sdk/nodejs/imagefactory/getVersions.ts new file mode 100644 index 00000000..c8c919fb --- /dev/null +++ b/sdk/nodejs/imagefactory/getVersions.ts @@ -0,0 +1,66 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * The image factory versions data source provides a list of available talos versions from the image factory. + */ +export function getVersions(args?: GetVersionsArgs, opts?: pulumi.InvokeOptions): Promise { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("talos:imageFactory/getVersions:getVersions", { + "filters": args.filters, + }, opts); +} + +/** + * A collection of arguments for invoking getVersions. + */ +export interface GetVersionsArgs { + /** + * The filter to apply to the overlays list. + */ + filters?: inputs.imageFactory.GetVersionsFilters; +} + +/** + * A collection of values returned by getVersions. + */ +export interface GetVersionsResult { + /** + * The filter to apply to the overlays list. + */ + readonly filters?: outputs.imageFactory.GetVersionsFilters; + /** + * The ID of this resource. + */ + readonly id: string; + /** + * The list of available talos versions. + */ + readonly talosVersions: string[]; +} +/** + * The image factory versions data source provides a list of available talos versions from the image factory. + */ +export function getVersionsOutput(args?: GetVersionsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("talos:imageFactory/getVersions:getVersions", { + "filters": args.filters, + }, opts); +} + +/** + * A collection of arguments for invoking getVersions. + */ +export interface GetVersionsOutputArgs { + /** + * The filter to apply to the overlays list. + */ + filters?: pulumi.Input; +} diff --git a/sdk/nodejs/imagefactory/index.ts b/sdk/nodejs/imagefactory/index.ts new file mode 100644 index 00000000..67c1be05 --- /dev/null +++ b/sdk/nodejs/imagefactory/index.ts @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +// Export members: +export { GetExtensionsVersionsArgs, GetExtensionsVersionsResult, GetExtensionsVersionsOutputArgs } from "./getExtensionsVersions"; +export const getExtensionsVersions: typeof import("./getExtensionsVersions").getExtensionsVersions = null as any; +export const getExtensionsVersionsOutput: typeof import("./getExtensionsVersions").getExtensionsVersionsOutput = null as any; +utilities.lazyLoad(exports, ["getExtensionsVersions","getExtensionsVersionsOutput"], () => require("./getExtensionsVersions")); + +export { GetOverlaysVersionsArgs, GetOverlaysVersionsResult, GetOverlaysVersionsOutputArgs } from "./getOverlaysVersions"; +export const getOverlaysVersions: typeof import("./getOverlaysVersions").getOverlaysVersions = null as any; +export const getOverlaysVersionsOutput: typeof import("./getOverlaysVersions").getOverlaysVersionsOutput = null as any; +utilities.lazyLoad(exports, ["getOverlaysVersions","getOverlaysVersionsOutput"], () => require("./getOverlaysVersions")); + +export { GetUrlsArgs, GetUrlsResult, GetUrlsOutputArgs } from "./getUrls"; +export const getUrls: typeof import("./getUrls").getUrls = null as any; +export const getUrlsOutput: typeof import("./getUrls").getUrlsOutput = null as any; +utilities.lazyLoad(exports, ["getUrls","getUrlsOutput"], () => require("./getUrls")); + +export { GetVersionsArgs, GetVersionsResult, GetVersionsOutputArgs } from "./getVersions"; +export const getVersions: typeof import("./getVersions").getVersions = null as any; +export const getVersionsOutput: typeof import("./getVersions").getVersionsOutput = null as any; +utilities.lazyLoad(exports, ["getVersions","getVersionsOutput"], () => require("./getVersions")); + +export { SchematicArgs, SchematicState } from "./schematic"; +export type Schematic = import("./schematic").Schematic; +export const Schematic: typeof import("./schematic").Schematic = null as any; +utilities.lazyLoad(exports, ["Schematic"], () => require("./schematic")); + + +const _module = { + version: utilities.getVersion(), + construct: (name: string, type: string, urn: string): pulumi.Resource => { + switch (type) { + case "talos:imageFactory/schematic:Schematic": + return new Schematic(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("talos", "imageFactory/schematic", _module) diff --git a/sdk/nodejs/imagefactory/schematic.ts b/sdk/nodejs/imagefactory/schematic.ts new file mode 100644 index 00000000..80944af2 --- /dev/null +++ b/sdk/nodejs/imagefactory/schematic.ts @@ -0,0 +1,84 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * The image factory schematic resource allows you to create a schematic for a Talos image. + */ +export class Schematic extends pulumi.CustomResource { + /** + * Get an existing Schematic resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: SchematicState, opts?: pulumi.CustomResourceOptions): Schematic { + return new Schematic(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'talos:imageFactory/schematic:Schematic'; + + /** + * Returns true if the given object is an instance of Schematic. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Schematic { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Schematic.__pulumiType; + } + + /** + * The schematic yaml respresentation to generate the image. + */ + public readonly schematic!: pulumi.Output; + + /** + * Create a Schematic resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: SchematicArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: SchematicArgs | SchematicState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as SchematicState | undefined; + resourceInputs["schematic"] = state ? state.schematic : undefined; + } else { + const args = argsOrState as SchematicArgs | undefined; + resourceInputs["schematic"] = args ? args.schematic : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Schematic.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Schematic resources. + */ +export interface SchematicState { + /** + * The schematic yaml respresentation to generate the image. + */ + schematic?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Schematic resource. + */ +export interface SchematicArgs { + /** + * The schematic yaml respresentation to generate the image. + */ + schematic?: pulumi.Input; +} diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index 90bef4a6..a6347fe4 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -14,12 +14,16 @@ utilities.lazyLoad(exports, ["Provider"], () => require("./provider")); // Export sub-modules: import * as client from "./client"; import * as cluster from "./cluster"; +import * as config from "./config"; +import * as imagefactory from "./imagefactory"; import * as machine from "./machine"; import * as types from "./types"; export { client, cluster, + config, + imagefactory, machine, types, }; diff --git a/sdk/nodejs/machine/configurationApply.ts b/sdk/nodejs/machine/configurationApply.ts index 50dacb18..4eeb46f3 100644 --- a/sdk/nodejs/machine/configurationApply.ts +++ b/sdk/nodejs/machine/configurationApply.ts @@ -65,6 +65,10 @@ export class ConfigurationApply extends pulumi.CustomResource { * The name of the node to bootstrap */ public readonly node!: pulumi.Output; + /** + * Actions to be taken on destroy, if *reset* is not set this is a no-op. + */ + public readonly onDestroy!: pulumi.Output; public readonly timeouts!: pulumi.Output; /** @@ -87,6 +91,7 @@ export class ConfigurationApply extends pulumi.CustomResource { resourceInputs["machineConfiguration"] = state ? state.machineConfiguration : undefined; resourceInputs["machineConfigurationInput"] = state ? state.machineConfigurationInput : undefined; resourceInputs["node"] = state ? state.node : undefined; + resourceInputs["onDestroy"] = state ? state.onDestroy : undefined; resourceInputs["timeouts"] = state ? state.timeouts : undefined; } else { const args = argsOrState as ConfigurationApplyArgs | undefined; @@ -105,6 +110,7 @@ export class ConfigurationApply extends pulumi.CustomResource { resourceInputs["endpoint"] = args ? args.endpoint : undefined; resourceInputs["machineConfigurationInput"] = args?.machineConfigurationInput ? pulumi.secret(args.machineConfigurationInput) : undefined; resourceInputs["node"] = args ? args.node : undefined; + resourceInputs["onDestroy"] = args ? args.onDestroy : undefined; resourceInputs["timeouts"] = args ? args.timeouts : undefined; resourceInputs["machineConfiguration"] = undefined /*out*/; } @@ -147,6 +153,10 @@ export interface ConfigurationApplyState { * The name of the node to bootstrap */ node?: pulumi.Input; + /** + * Actions to be taken on destroy, if *reset* is not set this is a no-op. + */ + onDestroy?: pulumi.Input; timeouts?: pulumi.Input; } @@ -178,5 +188,9 @@ export interface ConfigurationApplyArgs { * The name of the node to bootstrap */ node: pulumi.Input; + /** + * Actions to be taken on destroy, if *reset* is not set this is a no-op. + */ + onDestroy?: pulumi.Input; timeouts?: pulumi.Input; } diff --git a/sdk/nodejs/machine/getConfiguration.ts b/sdk/nodejs/machine/getConfiguration.ts index 162dc05f..29215427 100644 --- a/sdk/nodejs/machine/getConfiguration.ts +++ b/sdk/nodejs/machine/getConfiguration.ts @@ -59,11 +59,11 @@ export interface GetConfigurationArgs { */ configPatches?: string[]; /** - * Whether to generate documentation for the generated configuration + * Whether to generate documentation for the generated configuration. Defaults to false */ docs?: boolean; /** - * Whether to generate examples for the generated configuration + * Whether to generate examples for the generated configuration. Defaults to false */ examples?: boolean; /** @@ -101,11 +101,11 @@ export interface GetConfigurationResult { */ readonly configPatches?: string[]; /** - * Whether to generate documentation for the generated configuration + * Whether to generate documentation for the generated configuration. Defaults to false */ readonly docs?: boolean; /** - * Whether to generate examples for the generated configuration + * Whether to generate examples for the generated configuration. Defaults to false */ readonly examples?: boolean; /** @@ -186,11 +186,11 @@ export interface GetConfigurationOutputArgs { */ configPatches?: pulumi.Input[]>; /** - * Whether to generate documentation for the generated configuration + * Whether to generate documentation for the generated configuration. Defaults to false */ docs?: pulumi.Input; /** - * Whether to generate examples for the generated configuration + * Whether to generate examples for the generated configuration. Defaults to false */ examples?: pulumi.Input; /** diff --git a/sdk/nodejs/provider.ts b/sdk/nodejs/provider.ts index 679f5e87..54af5662 100644 --- a/sdk/nodejs/provider.ts +++ b/sdk/nodejs/provider.ts @@ -25,6 +25,10 @@ export class Provider extends pulumi.ProviderResource { return obj['__pulumiType'] === "pulumi:providers:" + Provider.__pulumiType; } + /** + * The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev. + */ + public readonly imageFactoryUrl!: pulumi.Output; /** * Create a Provider resource with the given unique name, arguments, and options. @@ -37,6 +41,7 @@ export class Provider extends pulumi.ProviderResource { let resourceInputs: pulumi.Inputs = {}; opts = opts || {}; { + resourceInputs["imageFactoryUrl"] = args ? args.imageFactoryUrl : undefined; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(Provider.__pulumiType, name, resourceInputs, opts); @@ -47,4 +52,8 @@ export class Provider extends pulumi.ProviderResource { * The set of arguments for constructing a Provider resource. */ export interface ProviderArgs { + /** + * The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev. + */ + imageFactoryUrl?: pulumi.Input; } diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 1f660d76..622375d5 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -18,6 +18,15 @@ "cluster/getHealth.ts", "cluster/getKubeconfig.ts", "cluster/index.ts", + "cluster/kubeconfig.ts", + "config/index.ts", + "config/vars.ts", + "imagefactory/getExtensionsVersions.ts", + "imagefactory/getOverlaysVersions.ts", + "imagefactory/getUrls.ts", + "imagefactory/getVersions.ts", + "imagefactory/index.ts", + "imagefactory/schematic.ts", "index.ts", "machine/bootstrap.ts", "machine/configurationApply.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index ff366473..b7b3637e 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -125,6 +125,95 @@ export namespace cluster { */ read?: pulumi.Input; } + + export interface KubeconfigClientConfiguration { + /** + * The client CA certificate + */ + caCertificate: pulumi.Input; + /** + * The client certificate + */ + clientCertificate: pulumi.Input; + /** + * The client key + */ + clientKey: pulumi.Input; + } + + export interface KubeconfigKubernetesClientConfiguration { + /** + * The kubernetes CA certificate + */ + caCertificate?: pulumi.Input; + /** + * The kubernetes client certificate + */ + clientCertificate?: pulumi.Input; + /** + * The kubernetes client key + */ + clientKey?: pulumi.Input; + /** + * The kubernetes host + */ + host?: pulumi.Input; + } + + export interface KubeconfigTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: pulumi.Input; + } +} + +export namespace imageFactory { + export interface GetExtensionsVersionsFilters { + /** + * The name of the extension to filter by. + */ + names?: string[]; + } + + export interface GetExtensionsVersionsFiltersArgs { + /** + * The name of the extension to filter by. + */ + names?: pulumi.Input[]>; + } + + export interface GetOverlaysVersionsFilters { + /** + * The name of the overlay to filter by. + */ + name?: string; + } + + export interface GetOverlaysVersionsFiltersArgs { + /** + * The name of the overlay to filter by. + */ + name?: pulumi.Input; + } + + export interface GetVersionsFilters { + /** + * If set to true, only stable versions will be returned. If set to false, all versions will be returned. + */ + stableVersionsOnly?: boolean; + } + + export interface GetVersionsFiltersArgs { + /** + * If set to true, only stable versions will be returned. If set to false, all versions will be returned. + */ + stableVersionsOnly?: pulumi.Input; + } } export namespace machine { @@ -231,6 +320,21 @@ export namespace machine { secret: pulumi.Input; } + export interface ConfigurationApplyOnDestroy { + /** + * Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true + */ + graceful?: pulumi.Input; + /** + * Reboot indicates whether node should reboot or halt after resetting. Default false + */ + reboot?: pulumi.Input; + /** + * Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false + */ + reset?: pulumi.Input; + } + export interface GetDisksClientConfiguration { /** * The client CA certificate @@ -434,6 +538,10 @@ export namespace machine { * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). */ create?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: pulumi.Input; /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). */ diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 1ed98388..aedc0d12 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -87,6 +87,137 @@ export namespace cluster { read?: string; } + export interface KubeconfigClientConfiguration { + /** + * The client CA certificate + */ + caCertificate: string; + /** + * The client certificate + */ + clientCertificate: string; + /** + * The client key + */ + clientKey: string; + } + + export interface KubeconfigKubernetesClientConfiguration { + /** + * The kubernetes CA certificate + */ + caCertificate: string; + /** + * The kubernetes client certificate + */ + clientCertificate: string; + /** + * The kubernetes client key + */ + clientKey: string; + /** + * The kubernetes host + */ + host: string; + } + + export interface KubeconfigTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: string; + } + +} + +export namespace imageFactory { + export interface GetExtensionsVersionsExtensionsInfo { + author: string; + description: string; + digest: string; + name: string; + ref: string; + } + + export interface GetExtensionsVersionsFilters { + /** + * The name of the extension to filter by. + */ + names?: string[]; + } + + export interface GetOverlaysVersionsFilters { + /** + * The name of the overlay to filter by. + */ + name?: string; + } + + export interface GetOverlaysVersionsOverlaysInfo { + digest: string; + image: string; + name: string; + ref: string; + } + + export interface GetUrlsUrls { + /** + * The URL for the disk image. + */ + diskImage: string; + /** + * The URL for the disk image with secure boot. + */ + diskImageSecureboot: string; + /** + * The URL for the initramfs image. + */ + initramfs: string; + /** + * The URL for the installer image. + */ + installer: string; + /** + * The URL for the installer image with secure boot. + */ + installerSecureboot: string; + /** + * The URL for the ISO image. + */ + iso: string; + /** + * The URL for the ISO image with secure boot. + */ + isoSecureboot: string; + /** + * The URL for the kernel image. + */ + kernel: string; + /** + * The URL for the kernel command line. + */ + kernelCommandLine: string; + /** + * The URL for the PXE image. + */ + pxe: string; + /** + * The URL for the UKI image. + */ + uki: string; + } + + export interface GetVersionsFilters { + /** + * If set to true, only stable versions will be returned. If set to false, all versions will be returned. + */ + stableVersionsOnly?: boolean; + } + } export namespace machine { @@ -154,6 +285,21 @@ export namespace machine { secret: string; } + export interface ConfigurationApplyOnDestroy { + /** + * Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true + */ + graceful: boolean; + /** + * Reboot indicates whether node should reboot or halt after resetting. Default false + */ + reboot: boolean; + /** + * Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false + */ + reset: boolean; + } + export interface GetDisksClientConfiguration { /** * The client CA certificate @@ -297,6 +443,10 @@ export namespace machine { * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). */ create?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: string; /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). */ diff --git a/sdk/python/pulumiverse_talos/__init__.py b/sdk/python/pulumiverse_talos/__init__.py index 9c9adbd0..5ef3b25d 100644 --- a/sdk/python/pulumiverse_talos/__init__.py +++ b/sdk/python/pulumiverse_talos/__init__.py @@ -13,16 +13,38 @@ client = __client import pulumiverse_talos.cluster as __cluster cluster = __cluster + import pulumiverse_talos.config as __config + config = __config + import pulumiverse_talos.imagefactory as __imagefactory + imagefactory = __imagefactory import pulumiverse_talos.machine as __machine machine = __machine else: client = _utilities.lazy_import('pulumiverse_talos.client') cluster = _utilities.lazy_import('pulumiverse_talos.cluster') + config = _utilities.lazy_import('pulumiverse_talos.config') + imagefactory = _utilities.lazy_import('pulumiverse_talos.imagefactory') machine = _utilities.lazy_import('pulumiverse_talos.machine') _utilities.register( resource_modules=""" [ + { + "pkg": "talos", + "mod": "cluster/kubeconfig", + "fqn": "pulumiverse_talos.cluster", + "classes": { + "talos:cluster/kubeconfig:Kubeconfig": "Kubeconfig" + } + }, + { + "pkg": "talos", + "mod": "imageFactory/schematic", + "fqn": "pulumiverse_talos.imagefactory", + "classes": { + "talos:imageFactory/schematic:Schematic": "Schematic" + } + }, { "pkg": "talos", "mod": "machine/bootstrap", diff --git a/sdk/python/pulumiverse_talos/cluster/__init__.py b/sdk/python/pulumiverse_talos/cluster/__init__.py index f5e82c77..46aab3f4 100644 --- a/sdk/python/pulumiverse_talos/cluster/__init__.py +++ b/sdk/python/pulumiverse_talos/cluster/__init__.py @@ -7,5 +7,6 @@ # Export this package's modules as members: from .get_health import * from .get_kubeconfig import * +from .kubeconfig import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumiverse_talos/cluster/_inputs.py b/sdk/python/pulumiverse_talos/cluster/_inputs.py index 78041e12..1952d50e 100644 --- a/sdk/python/pulumiverse_talos/cluster/_inputs.py +++ b/sdk/python/pulumiverse_talos/cluster/_inputs.py @@ -15,6 +15,12 @@ from .. import _utilities __all__ = [ + 'KubeconfigClientConfigurationArgs', + 'KubeconfigClientConfigurationArgsDict', + 'KubeconfigKubernetesClientConfigurationArgs', + 'KubeconfigKubernetesClientConfigurationArgsDict', + 'KubeconfigTimeoutsArgs', + 'KubeconfigTimeoutsArgsDict', 'GetHealthClientConfigurationArgs', 'GetHealthClientConfigurationArgsDict', 'GetHealthTimeoutsArgs', @@ -27,6 +33,219 @@ MYPY = False +if not MYPY: + class KubeconfigClientConfigurationArgsDict(TypedDict): + ca_certificate: pulumi.Input[str] + """ + The client CA certificate + """ + client_certificate: pulumi.Input[str] + """ + The client certificate + """ + client_key: pulumi.Input[str] + """ + The client key + """ +elif False: + KubeconfigClientConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class KubeconfigClientConfigurationArgs: + def __init__(__self__, *, + ca_certificate: pulumi.Input[str], + client_certificate: pulumi.Input[str], + client_key: pulumi.Input[str]): + """ + :param pulumi.Input[str] ca_certificate: The client CA certificate + :param pulumi.Input[str] client_certificate: The client certificate + :param pulumi.Input[str] client_key: The client key + """ + pulumi.set(__self__, "ca_certificate", ca_certificate) + pulumi.set(__self__, "client_certificate", client_certificate) + pulumi.set(__self__, "client_key", client_key) + + @property + @pulumi.getter(name="caCertificate") + def ca_certificate(self) -> pulumi.Input[str]: + """ + The client CA certificate + """ + return pulumi.get(self, "ca_certificate") + + @ca_certificate.setter + def ca_certificate(self, value: pulumi.Input[str]): + pulumi.set(self, "ca_certificate", value) + + @property + @pulumi.getter(name="clientCertificate") + def client_certificate(self) -> pulumi.Input[str]: + """ + The client certificate + """ + return pulumi.get(self, "client_certificate") + + @client_certificate.setter + def client_certificate(self, value: pulumi.Input[str]): + pulumi.set(self, "client_certificate", value) + + @property + @pulumi.getter(name="clientKey") + def client_key(self) -> pulumi.Input[str]: + """ + The client key + """ + return pulumi.get(self, "client_key") + + @client_key.setter + def client_key(self, value: pulumi.Input[str]): + pulumi.set(self, "client_key", value) + + +if not MYPY: + class KubeconfigKubernetesClientConfigurationArgsDict(TypedDict): + ca_certificate: NotRequired[pulumi.Input[str]] + """ + The kubernetes CA certificate + """ + client_certificate: NotRequired[pulumi.Input[str]] + """ + The kubernetes client certificate + """ + client_key: NotRequired[pulumi.Input[str]] + """ + The kubernetes client key + """ + host: NotRequired[pulumi.Input[str]] + """ + The kubernetes host + """ +elif False: + KubeconfigKubernetesClientConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class KubeconfigKubernetesClientConfigurationArgs: + def __init__(__self__, *, + ca_certificate: Optional[pulumi.Input[str]] = None, + client_certificate: Optional[pulumi.Input[str]] = None, + client_key: Optional[pulumi.Input[str]] = None, + host: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] ca_certificate: The kubernetes CA certificate + :param pulumi.Input[str] client_certificate: The kubernetes client certificate + :param pulumi.Input[str] client_key: The kubernetes client key + :param pulumi.Input[str] host: The kubernetes host + """ + if ca_certificate is not None: + pulumi.set(__self__, "ca_certificate", ca_certificate) + if client_certificate is not None: + pulumi.set(__self__, "client_certificate", client_certificate) + if client_key is not None: + pulumi.set(__self__, "client_key", client_key) + if host is not None: + pulumi.set(__self__, "host", host) + + @property + @pulumi.getter(name="caCertificate") + def ca_certificate(self) -> Optional[pulumi.Input[str]]: + """ + The kubernetes CA certificate + """ + return pulumi.get(self, "ca_certificate") + + @ca_certificate.setter + def ca_certificate(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ca_certificate", value) + + @property + @pulumi.getter(name="clientCertificate") + def client_certificate(self) -> Optional[pulumi.Input[str]]: + """ + The kubernetes client certificate + """ + return pulumi.get(self, "client_certificate") + + @client_certificate.setter + def client_certificate(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "client_certificate", value) + + @property + @pulumi.getter(name="clientKey") + def client_key(self) -> Optional[pulumi.Input[str]]: + """ + The kubernetes client key + """ + return pulumi.get(self, "client_key") + + @client_key.setter + def client_key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "client_key", value) + + @property + @pulumi.getter + def host(self) -> Optional[pulumi.Input[str]]: + """ + The kubernetes host + """ + return pulumi.get(self, "host") + + @host.setter + def host(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "host", value) + + +if not MYPY: + class KubeconfigTimeoutsArgsDict(TypedDict): + create: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + update: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ +elif False: + KubeconfigTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class KubeconfigTimeoutsArgs: + def __init__(__self__, *, + create: Optional[pulumi.Input[str]] = None, + update: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param pulumi.Input[str] update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + if update is not None: + pulumi.set(__self__, "update", update) + + @property + @pulumi.getter + def create(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @create.setter + def create(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create", value) + + @property + @pulumi.getter + def update(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "update") + + @update.setter + def update(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "update", value) + + if not MYPY: class GetHealthClientConfigurationArgsDict(TypedDict): ca_certificate: str diff --git a/sdk/python/pulumiverse_talos/cluster/get_health.py b/sdk/python/pulumiverse_talos/cluster/get_health.py index d4d1a99e..8ec3f052 100644 --- a/sdk/python/pulumiverse_talos/cluster/get_health.py +++ b/sdk/python/pulumiverse_talos/cluster/get_health.py @@ -28,7 +28,7 @@ class GetHealthResult: """ A collection of values returned by getHealth. """ - def __init__(__self__, client_configuration=None, control_plane_nodes=None, endpoints=None, id=None, timeouts=None, worker_nodes=None): + def __init__(__self__, client_configuration=None, control_plane_nodes=None, endpoints=None, id=None, skip_kubernetes_checks=None, timeouts=None, worker_nodes=None): if client_configuration and not isinstance(client_configuration, dict): raise TypeError("Expected argument 'client_configuration' to be a dict") pulumi.set(__self__, "client_configuration", client_configuration) @@ -41,6 +41,9 @@ def __init__(__self__, client_configuration=None, control_plane_nodes=None, endp if id and not isinstance(id, str): raise TypeError("Expected argument 'id' to be a str") pulumi.set(__self__, "id", id) + if skip_kubernetes_checks and not isinstance(skip_kubernetes_checks, bool): + raise TypeError("Expected argument 'skip_kubernetes_checks' to be a bool") + pulumi.set(__self__, "skip_kubernetes_checks", skip_kubernetes_checks) if timeouts and not isinstance(timeouts, dict): raise TypeError("Expected argument 'timeouts' to be a dict") pulumi.set(__self__, "timeouts", timeouts) @@ -80,6 +83,14 @@ def id(self) -> str: """ return pulumi.get(self, "id") + @property + @pulumi.getter(name="skipKubernetesChecks") + def skip_kubernetes_checks(self) -> Optional[bool]: + """ + Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false. + """ + return pulumi.get(self, "skip_kubernetes_checks") + @property @pulumi.getter def timeouts(self) -> Optional['outputs.GetHealthTimeoutsResult']: @@ -104,6 +115,7 @@ def __await__(self): control_plane_nodes=self.control_plane_nodes, endpoints=self.endpoints, id=self.id, + skip_kubernetes_checks=self.skip_kubernetes_checks, timeouts=self.timeouts, worker_nodes=self.worker_nodes) @@ -111,22 +123,25 @@ def __await__(self): def get_health(client_configuration: Optional[Union['GetHealthClientConfigurationArgs', 'GetHealthClientConfigurationArgsDict']] = None, control_plane_nodes: Optional[Sequence[str]] = None, endpoints: Optional[Sequence[str]] = None, + skip_kubernetes_checks: Optional[bool] = None, timeouts: Optional[Union['GetHealthTimeoutsArgs', 'GetHealthTimeoutsArgsDict']] = None, worker_nodes: Optional[Sequence[str]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetHealthResult: """ - Checks the health of a Talos cluster + Waits for the Talos cluster to be healthy. Can be used as a dependency before running other operations on the cluster. :param Union['GetHealthClientConfigurationArgs', 'GetHealthClientConfigurationArgsDict'] client_configuration: The client configuration data :param Sequence[str] control_plane_nodes: List of control plane nodes to check for health. :param Sequence[str] endpoints: endpoints to use for the health check client. Use at least one control plane endpoint. + :param bool skip_kubernetes_checks: Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false. :param Sequence[str] worker_nodes: List of worker nodes to check for health. """ __args__ = dict() __args__['clientConfiguration'] = client_configuration __args__['controlPlaneNodes'] = control_plane_nodes __args__['endpoints'] = endpoints + __args__['skipKubernetesChecks'] = skip_kubernetes_checks __args__['timeouts'] = timeouts __args__['workerNodes'] = worker_nodes opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) @@ -137,27 +152,31 @@ def get_health(client_configuration: Optional[Union['GetHealthClientConfiguratio control_plane_nodes=pulumi.get(__ret__, 'control_plane_nodes'), endpoints=pulumi.get(__ret__, 'endpoints'), id=pulumi.get(__ret__, 'id'), + skip_kubernetes_checks=pulumi.get(__ret__, 'skip_kubernetes_checks'), timeouts=pulumi.get(__ret__, 'timeouts'), worker_nodes=pulumi.get(__ret__, 'worker_nodes')) def get_health_output(client_configuration: Optional[pulumi.Input[Union['GetHealthClientConfigurationArgs', 'GetHealthClientConfigurationArgsDict']]] = None, control_plane_nodes: Optional[pulumi.Input[Sequence[str]]] = None, endpoints: Optional[pulumi.Input[Sequence[str]]] = None, + skip_kubernetes_checks: Optional[pulumi.Input[Optional[bool]]] = None, timeouts: Optional[pulumi.Input[Optional[Union['GetHealthTimeoutsArgs', 'GetHealthTimeoutsArgsDict']]]] = None, worker_nodes: Optional[pulumi.Input[Optional[Sequence[str]]]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetHealthResult]: """ - Checks the health of a Talos cluster + Waits for the Talos cluster to be healthy. Can be used as a dependency before running other operations on the cluster. :param Union['GetHealthClientConfigurationArgs', 'GetHealthClientConfigurationArgsDict'] client_configuration: The client configuration data :param Sequence[str] control_plane_nodes: List of control plane nodes to check for health. :param Sequence[str] endpoints: endpoints to use for the health check client. Use at least one control plane endpoint. + :param bool skip_kubernetes_checks: Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false. :param Sequence[str] worker_nodes: List of worker nodes to check for health. """ __args__ = dict() __args__['clientConfiguration'] = client_configuration __args__['controlPlaneNodes'] = control_plane_nodes __args__['endpoints'] = endpoints + __args__['skipKubernetesChecks'] = skip_kubernetes_checks __args__['timeouts'] = timeouts __args__['workerNodes'] = worker_nodes opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) @@ -167,5 +186,6 @@ def get_health_output(client_configuration: Optional[pulumi.Input[Union['GetHeal control_plane_nodes=pulumi.get(__response__, 'control_plane_nodes'), endpoints=pulumi.get(__response__, 'endpoints'), id=pulumi.get(__response__, 'id'), + skip_kubernetes_checks=pulumi.get(__response__, 'skip_kubernetes_checks'), timeouts=pulumi.get(__response__, 'timeouts'), worker_nodes=pulumi.get(__response__, 'worker_nodes'))) diff --git a/sdk/python/pulumiverse_talos/cluster/kubeconfig.py b/sdk/python/pulumiverse_talos/cluster/kubeconfig.py new file mode 100644 index 00000000..25706e0d --- /dev/null +++ b/sdk/python/pulumiverse_talos/cluster/kubeconfig.py @@ -0,0 +1,340 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['KubeconfigArgs', 'Kubeconfig'] + +@pulumi.input_type +class KubeconfigArgs: + def __init__(__self__, *, + client_configuration: pulumi.Input['KubeconfigClientConfigurationArgs'], + node: pulumi.Input[str], + endpoint: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['KubeconfigTimeoutsArgs']] = None): + """ + The set of arguments for constructing a Kubeconfig resource. + :param pulumi.Input['KubeconfigClientConfigurationArgs'] client_configuration: The client configuration data + :param pulumi.Input[str] node: controlplane node to retrieve the kubeconfig from + :param pulumi.Input[str] endpoint: endpoint to use for the talosclient. If not set, the node value will be used + """ + pulumi.set(__self__, "client_configuration", client_configuration) + pulumi.set(__self__, "node", node) + if endpoint is not None: + pulumi.set(__self__, "endpoint", endpoint) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="clientConfiguration") + def client_configuration(self) -> pulumi.Input['KubeconfigClientConfigurationArgs']: + """ + The client configuration data + """ + return pulumi.get(self, "client_configuration") + + @client_configuration.setter + def client_configuration(self, value: pulumi.Input['KubeconfigClientConfigurationArgs']): + pulumi.set(self, "client_configuration", value) + + @property + @pulumi.getter + def node(self) -> pulumi.Input[str]: + """ + controlplane node to retrieve the kubeconfig from + """ + return pulumi.get(self, "node") + + @node.setter + def node(self, value: pulumi.Input[str]): + pulumi.set(self, "node", value) + + @property + @pulumi.getter + def endpoint(self) -> Optional[pulumi.Input[str]]: + """ + endpoint to use for the talosclient. If not set, the node value will be used + """ + return pulumi.get(self, "endpoint") + + @endpoint.setter + def endpoint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "endpoint", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['KubeconfigTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['KubeconfigTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +@pulumi.input_type +class _KubeconfigState: + def __init__(__self__, *, + client_configuration: Optional[pulumi.Input['KubeconfigClientConfigurationArgs']] = None, + endpoint: Optional[pulumi.Input[str]] = None, + kubeconfig_raw: Optional[pulumi.Input[str]] = None, + kubernetes_client_configuration: Optional[pulumi.Input['KubeconfigKubernetesClientConfigurationArgs']] = None, + node: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['KubeconfigTimeoutsArgs']] = None): + """ + Input properties used for looking up and filtering Kubeconfig resources. + :param pulumi.Input['KubeconfigClientConfigurationArgs'] client_configuration: The client configuration data + :param pulumi.Input[str] endpoint: endpoint to use for the talosclient. If not set, the node value will be used + :param pulumi.Input[str] kubeconfig_raw: The raw kubeconfig + :param pulumi.Input['KubeconfigKubernetesClientConfigurationArgs'] kubernetes_client_configuration: The kubernetes client configuration + :param pulumi.Input[str] node: controlplane node to retrieve the kubeconfig from + """ + if client_configuration is not None: + pulumi.set(__self__, "client_configuration", client_configuration) + if endpoint is not None: + pulumi.set(__self__, "endpoint", endpoint) + if kubeconfig_raw is not None: + pulumi.set(__self__, "kubeconfig_raw", kubeconfig_raw) + if kubernetes_client_configuration is not None: + pulumi.set(__self__, "kubernetes_client_configuration", kubernetes_client_configuration) + if node is not None: + pulumi.set(__self__, "node", node) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="clientConfiguration") + def client_configuration(self) -> Optional[pulumi.Input['KubeconfigClientConfigurationArgs']]: + """ + The client configuration data + """ + return pulumi.get(self, "client_configuration") + + @client_configuration.setter + def client_configuration(self, value: Optional[pulumi.Input['KubeconfigClientConfigurationArgs']]): + pulumi.set(self, "client_configuration", value) + + @property + @pulumi.getter + def endpoint(self) -> Optional[pulumi.Input[str]]: + """ + endpoint to use for the talosclient. If not set, the node value will be used + """ + return pulumi.get(self, "endpoint") + + @endpoint.setter + def endpoint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "endpoint", value) + + @property + @pulumi.getter(name="kubeconfigRaw") + def kubeconfig_raw(self) -> Optional[pulumi.Input[str]]: + """ + The raw kubeconfig + """ + return pulumi.get(self, "kubeconfig_raw") + + @kubeconfig_raw.setter + def kubeconfig_raw(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kubeconfig_raw", value) + + @property + @pulumi.getter(name="kubernetesClientConfiguration") + def kubernetes_client_configuration(self) -> Optional[pulumi.Input['KubeconfigKubernetesClientConfigurationArgs']]: + """ + The kubernetes client configuration + """ + return pulumi.get(self, "kubernetes_client_configuration") + + @kubernetes_client_configuration.setter + def kubernetes_client_configuration(self, value: Optional[pulumi.Input['KubeconfigKubernetesClientConfigurationArgs']]): + pulumi.set(self, "kubernetes_client_configuration", value) + + @property + @pulumi.getter + def node(self) -> Optional[pulumi.Input[str]]: + """ + controlplane node to retrieve the kubeconfig from + """ + return pulumi.get(self, "node") + + @node.setter + def node(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "node", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['KubeconfigTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['KubeconfigTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +class Kubeconfig(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + client_configuration: Optional[pulumi.Input[Union['KubeconfigClientConfigurationArgs', 'KubeconfigClientConfigurationArgsDict']]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + node: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input[Union['KubeconfigTimeoutsArgs', 'KubeconfigTimeoutsArgsDict']]] = None, + __props__=None): + """ + Retrieves the kubeconfig for a Talos cluster + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Union['KubeconfigClientConfigurationArgs', 'KubeconfigClientConfigurationArgsDict']] client_configuration: The client configuration data + :param pulumi.Input[str] endpoint: endpoint to use for the talosclient. If not set, the node value will be used + :param pulumi.Input[str] node: controlplane node to retrieve the kubeconfig from + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: KubeconfigArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Retrieves the kubeconfig for a Talos cluster + + :param str resource_name: The name of the resource. + :param KubeconfigArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(KubeconfigArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + client_configuration: Optional[pulumi.Input[Union['KubeconfigClientConfigurationArgs', 'KubeconfigClientConfigurationArgsDict']]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + node: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input[Union['KubeconfigTimeoutsArgs', 'KubeconfigTimeoutsArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = KubeconfigArgs.__new__(KubeconfigArgs) + + if client_configuration is None and not opts.urn: + raise TypeError("Missing required property 'client_configuration'") + __props__.__dict__["client_configuration"] = client_configuration + __props__.__dict__["endpoint"] = endpoint + if node is None and not opts.urn: + raise TypeError("Missing required property 'node'") + __props__.__dict__["node"] = node + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["kubeconfig_raw"] = None + __props__.__dict__["kubernetes_client_configuration"] = None + secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["kubeconfigRaw"]) + opts = pulumi.ResourceOptions.merge(opts, secret_opts) + super(Kubeconfig, __self__).__init__( + 'talos:cluster/kubeconfig:Kubeconfig', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + client_configuration: Optional[pulumi.Input[Union['KubeconfigClientConfigurationArgs', 'KubeconfigClientConfigurationArgsDict']]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + kubeconfig_raw: Optional[pulumi.Input[str]] = None, + kubernetes_client_configuration: Optional[pulumi.Input[Union['KubeconfigKubernetesClientConfigurationArgs', 'KubeconfigKubernetesClientConfigurationArgsDict']]] = None, + node: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input[Union['KubeconfigTimeoutsArgs', 'KubeconfigTimeoutsArgsDict']]] = None) -> 'Kubeconfig': + """ + Get an existing Kubeconfig resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Union['KubeconfigClientConfigurationArgs', 'KubeconfigClientConfigurationArgsDict']] client_configuration: The client configuration data + :param pulumi.Input[str] endpoint: endpoint to use for the talosclient. If not set, the node value will be used + :param pulumi.Input[str] kubeconfig_raw: The raw kubeconfig + :param pulumi.Input[Union['KubeconfigKubernetesClientConfigurationArgs', 'KubeconfigKubernetesClientConfigurationArgsDict']] kubernetes_client_configuration: The kubernetes client configuration + :param pulumi.Input[str] node: controlplane node to retrieve the kubeconfig from + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _KubeconfigState.__new__(_KubeconfigState) + + __props__.__dict__["client_configuration"] = client_configuration + __props__.__dict__["endpoint"] = endpoint + __props__.__dict__["kubeconfig_raw"] = kubeconfig_raw + __props__.__dict__["kubernetes_client_configuration"] = kubernetes_client_configuration + __props__.__dict__["node"] = node + __props__.__dict__["timeouts"] = timeouts + return Kubeconfig(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="clientConfiguration") + def client_configuration(self) -> pulumi.Output['outputs.KubeconfigClientConfiguration']: + """ + The client configuration data + """ + return pulumi.get(self, "client_configuration") + + @property + @pulumi.getter + def endpoint(self) -> pulumi.Output[str]: + """ + endpoint to use for the talosclient. If not set, the node value will be used + """ + return pulumi.get(self, "endpoint") + + @property + @pulumi.getter(name="kubeconfigRaw") + def kubeconfig_raw(self) -> pulumi.Output[str]: + """ + The raw kubeconfig + """ + return pulumi.get(self, "kubeconfig_raw") + + @property + @pulumi.getter(name="kubernetesClientConfiguration") + def kubernetes_client_configuration(self) -> pulumi.Output['outputs.KubeconfigKubernetesClientConfiguration']: + """ + The kubernetes client configuration + """ + return pulumi.get(self, "kubernetes_client_configuration") + + @property + @pulumi.getter + def node(self) -> pulumi.Output[str]: + """ + controlplane node to retrieve the kubeconfig from + """ + return pulumi.get(self, "node") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.KubeconfigTimeouts']]: + return pulumi.get(self, "timeouts") + diff --git a/sdk/python/pulumiverse_talos/cluster/outputs.py b/sdk/python/pulumiverse_talos/cluster/outputs.py index 8ee4f3ab..06eb89fe 100644 --- a/sdk/python/pulumiverse_talos/cluster/outputs.py +++ b/sdk/python/pulumiverse_talos/cluster/outputs.py @@ -15,6 +15,9 @@ from .. import _utilities __all__ = [ + 'KubeconfigClientConfiguration', + 'KubeconfigKubernetesClientConfiguration', + 'KubeconfigTimeouts', 'GetHealthClientConfigurationResult', 'GetHealthTimeoutsResult', 'GetKubeconfigClientConfigurationResult', @@ -22,6 +25,174 @@ 'GetKubeconfigTimeoutsResult', ] +@pulumi.output_type +class KubeconfigClientConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "caCertificate": + suggest = "ca_certificate" + elif key == "clientCertificate": + suggest = "client_certificate" + elif key == "clientKey": + suggest = "client_key" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in KubeconfigClientConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + KubeconfigClientConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + KubeconfigClientConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + ca_certificate: str, + client_certificate: str, + client_key: str): + """ + :param str ca_certificate: The client CA certificate + :param str client_certificate: The client certificate + :param str client_key: The client key + """ + pulumi.set(__self__, "ca_certificate", ca_certificate) + pulumi.set(__self__, "client_certificate", client_certificate) + pulumi.set(__self__, "client_key", client_key) + + @property + @pulumi.getter(name="caCertificate") + def ca_certificate(self) -> str: + """ + The client CA certificate + """ + return pulumi.get(self, "ca_certificate") + + @property + @pulumi.getter(name="clientCertificate") + def client_certificate(self) -> str: + """ + The client certificate + """ + return pulumi.get(self, "client_certificate") + + @property + @pulumi.getter(name="clientKey") + def client_key(self) -> str: + """ + The client key + """ + return pulumi.get(self, "client_key") + + +@pulumi.output_type +class KubeconfigKubernetesClientConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "caCertificate": + suggest = "ca_certificate" + elif key == "clientCertificate": + suggest = "client_certificate" + elif key == "clientKey": + suggest = "client_key" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in KubeconfigKubernetesClientConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + KubeconfigKubernetesClientConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + KubeconfigKubernetesClientConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + ca_certificate: Optional[str] = None, + client_certificate: Optional[str] = None, + client_key: Optional[str] = None, + host: Optional[str] = None): + """ + :param str ca_certificate: The kubernetes CA certificate + :param str client_certificate: The kubernetes client certificate + :param str client_key: The kubernetes client key + :param str host: The kubernetes host + """ + if ca_certificate is not None: + pulumi.set(__self__, "ca_certificate", ca_certificate) + if client_certificate is not None: + pulumi.set(__self__, "client_certificate", client_certificate) + if client_key is not None: + pulumi.set(__self__, "client_key", client_key) + if host is not None: + pulumi.set(__self__, "host", host) + + @property + @pulumi.getter(name="caCertificate") + def ca_certificate(self) -> Optional[str]: + """ + The kubernetes CA certificate + """ + return pulumi.get(self, "ca_certificate") + + @property + @pulumi.getter(name="clientCertificate") + def client_certificate(self) -> Optional[str]: + """ + The kubernetes client certificate + """ + return pulumi.get(self, "client_certificate") + + @property + @pulumi.getter(name="clientKey") + def client_key(self) -> Optional[str]: + """ + The kubernetes client key + """ + return pulumi.get(self, "client_key") + + @property + @pulumi.getter + def host(self) -> Optional[str]: + """ + The kubernetes host + """ + return pulumi.get(self, "host") + + +@pulumi.output_type +class KubeconfigTimeouts(dict): + def __init__(__self__, *, + create: Optional[str] = None, + update: Optional[str] = None): + """ + :param str create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param str update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + if update is not None: + pulumi.set(__self__, "update", update) + + @property + @pulumi.getter + def create(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @property + @pulumi.getter + def update(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "update") + + @pulumi.output_type class GetHealthClientConfigurationResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumiverse_talos/config/__init__.py b/sdk/python/pulumiverse_talos/config/__init__.py new file mode 100644 index 00000000..18853fcb --- /dev/null +++ b/sdk/python/pulumiverse_talos/config/__init__.py @@ -0,0 +1,8 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import sys +from .vars import _ExportableConfig + +sys.modules[__name__].__class__ = _ExportableConfig diff --git a/sdk/python/pulumiverse_talos/config/__init__.pyi b/sdk/python/pulumiverse_talos/config/__init__.pyi new file mode 100644 index 00000000..3d356743 --- /dev/null +++ b/sdk/python/pulumiverse_talos/config/__init__.pyi @@ -0,0 +1,21 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +imageFactoryUrl: Optional[str] +""" +The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev. +""" + diff --git a/sdk/python/pulumiverse_talos/config/vars.py b/sdk/python/pulumiverse_talos/config/vars.py new file mode 100644 index 00000000..999c9305 --- /dev/null +++ b/sdk/python/pulumiverse_talos/config/vars.py @@ -0,0 +1,29 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +import types + +__config__ = pulumi.Config('talos') + + +class _ExportableConfig(types.ModuleType): + @property + def image_factory_url(self) -> Optional[str]: + """ + The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev. + """ + return __config__.get('imageFactoryUrl') + diff --git a/sdk/python/pulumiverse_talos/imagefactory/__init__.py b/sdk/python/pulumiverse_talos/imagefactory/__init__.py new file mode 100644 index 00000000..4bd40679 --- /dev/null +++ b/sdk/python/pulumiverse_talos/imagefactory/__init__.py @@ -0,0 +1,14 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +from .. import _utilities +import typing +# Export this package's modules as members: +from .get_extensions_versions import * +from .get_overlays_versions import * +from .get_urls import * +from .get_versions import * +from .schematic import * +from ._inputs import * +from . import outputs diff --git a/sdk/python/pulumiverse_talos/imagefactory/_inputs.py b/sdk/python/pulumiverse_talos/imagefactory/_inputs.py new file mode 100644 index 00000000..c9299cb1 --- /dev/null +++ b/sdk/python/pulumiverse_talos/imagefactory/_inputs.py @@ -0,0 +1,123 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = [ + 'GetExtensionsVersionsFiltersArgs', + 'GetExtensionsVersionsFiltersArgsDict', + 'GetOverlaysVersionsFiltersArgs', + 'GetOverlaysVersionsFiltersArgsDict', + 'GetVersionsFiltersArgs', + 'GetVersionsFiltersArgsDict', +] + +MYPY = False + +if not MYPY: + class GetExtensionsVersionsFiltersArgsDict(TypedDict): + names: NotRequired[Sequence[str]] + """ + The name of the extension to filter by. + """ +elif False: + GetExtensionsVersionsFiltersArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GetExtensionsVersionsFiltersArgs: + def __init__(__self__, *, + names: Optional[Sequence[str]] = None): + """ + :param Sequence[str] names: The name of the extension to filter by. + """ + if names is not None: + pulumi.set(__self__, "names", names) + + @property + @pulumi.getter + def names(self) -> Optional[Sequence[str]]: + """ + The name of the extension to filter by. + """ + return pulumi.get(self, "names") + + @names.setter + def names(self, value: Optional[Sequence[str]]): + pulumi.set(self, "names", value) + + +if not MYPY: + class GetOverlaysVersionsFiltersArgsDict(TypedDict): + name: NotRequired[str] + """ + The name of the overlay to filter by. + """ +elif False: + GetOverlaysVersionsFiltersArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GetOverlaysVersionsFiltersArgs: + def __init__(__self__, *, + name: Optional[str] = None): + """ + :param str name: The name of the overlay to filter by. + """ + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + The name of the overlay to filter by. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[str]): + pulumi.set(self, "name", value) + + +if not MYPY: + class GetVersionsFiltersArgsDict(TypedDict): + stable_versions_only: NotRequired[bool] + """ + If set to true, only stable versions will be returned. If set to false, all versions will be returned. + """ +elif False: + GetVersionsFiltersArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GetVersionsFiltersArgs: + def __init__(__self__, *, + stable_versions_only: Optional[bool] = None): + """ + :param bool stable_versions_only: If set to true, only stable versions will be returned. If set to false, all versions will be returned. + """ + if stable_versions_only is not None: + pulumi.set(__self__, "stable_versions_only", stable_versions_only) + + @property + @pulumi.getter(name="stableVersionsOnly") + def stable_versions_only(self) -> Optional[bool]: + """ + If set to true, only stable versions will be returned. If set to false, all versions will be returned. + """ + return pulumi.get(self, "stable_versions_only") + + @stable_versions_only.setter + def stable_versions_only(self, value: Optional[bool]): + pulumi.set(self, "stable_versions_only", value) + + diff --git a/sdk/python/pulumiverse_talos/imagefactory/get_extensions_versions.py b/sdk/python/pulumiverse_talos/imagefactory/get_extensions_versions.py new file mode 100644 index 00000000..09875e57 --- /dev/null +++ b/sdk/python/pulumiverse_talos/imagefactory/get_extensions_versions.py @@ -0,0 +1,160 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = [ + 'GetExtensionsVersionsResult', + 'AwaitableGetExtensionsVersionsResult', + 'get_extensions_versions', + 'get_extensions_versions_output', +] + +@pulumi.output_type +class GetExtensionsVersionsResult: + """ + A collection of values returned by getExtensionsVersions. + """ + def __init__(__self__, extensions_infos=None, filters=None, id=None, talos_version=None): + if extensions_infos and not isinstance(extensions_infos, list): + raise TypeError("Expected argument 'extensions_infos' to be a list") + pulumi.set(__self__, "extensions_infos", extensions_infos) + if filters and not isinstance(filters, dict): + raise TypeError("Expected argument 'filters' to be a dict") + pulumi.set(__self__, "filters", filters) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if talos_version and not isinstance(talos_version, str): + raise TypeError("Expected argument 'talos_version' to be a str") + pulumi.set(__self__, "talos_version", talos_version) + + @property + @pulumi.getter(name="extensionsInfos") + def extensions_infos(self) -> Sequence['outputs.GetExtensionsVersionsExtensionsInfoResult']: + """ + The list of available extensions for the specified talos version. + """ + return pulumi.get(self, "extensions_infos") + + @property + @pulumi.getter + def filters(self) -> Optional['outputs.GetExtensionsVersionsFiltersResult']: + """ + The filter to apply to the extensions list. + """ + return pulumi.get(self, "filters") + + @property + @pulumi.getter + def id(self) -> str: + """ + The ID of this resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="talosVersion") + def talos_version(self) -> str: + """ + The talos version to get extensions for. + """ + return pulumi.get(self, "talos_version") + + +class AwaitableGetExtensionsVersionsResult(GetExtensionsVersionsResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetExtensionsVersionsResult( + extensions_infos=self.extensions_infos, + filters=self.filters, + id=self.id, + talos_version=self.talos_version) + + +def get_extensions_versions(filters: Optional[Union['GetExtensionsVersionsFiltersArgs', 'GetExtensionsVersionsFiltersArgsDict']] = None, + talos_version: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetExtensionsVersionsResult: + """ + The image factory extensions versions data source provides a list of available extensions for a specific talos version from the image factory. + + ## Example Usage + + ```python + import pulumi + import pulumi_talos as talos + + this = talos.imageFactory.get_extensions_versions(talos_version="v1.7.5", + filters={ + "names": [ + "amdgpu", + "tailscale", + ], + }) + ``` + + + :param Union['GetExtensionsVersionsFiltersArgs', 'GetExtensionsVersionsFiltersArgsDict'] filters: The filter to apply to the extensions list. + :param str talos_version: The talos version to get extensions for. + """ + __args__ = dict() + __args__['filters'] = filters + __args__['talosVersion'] = talos_version + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('talos:imageFactory/getExtensionsVersions:getExtensionsVersions', __args__, opts=opts, typ=GetExtensionsVersionsResult).value + + return AwaitableGetExtensionsVersionsResult( + extensions_infos=pulumi.get(__ret__, 'extensions_infos'), + filters=pulumi.get(__ret__, 'filters'), + id=pulumi.get(__ret__, 'id'), + talos_version=pulumi.get(__ret__, 'talos_version')) +def get_extensions_versions_output(filters: Optional[pulumi.Input[Optional[Union['GetExtensionsVersionsFiltersArgs', 'GetExtensionsVersionsFiltersArgsDict']]]] = None, + talos_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetExtensionsVersionsResult]: + """ + The image factory extensions versions data source provides a list of available extensions for a specific talos version from the image factory. + + ## Example Usage + + ```python + import pulumi + import pulumi_talos as talos + + this = talos.imageFactory.get_extensions_versions(talos_version="v1.7.5", + filters={ + "names": [ + "amdgpu", + "tailscale", + ], + }) + ``` + + + :param Union['GetExtensionsVersionsFiltersArgs', 'GetExtensionsVersionsFiltersArgsDict'] filters: The filter to apply to the extensions list. + :param str talos_version: The talos version to get extensions for. + """ + __args__ = dict() + __args__['filters'] = filters + __args__['talosVersion'] = talos_version + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('talos:imageFactory/getExtensionsVersions:getExtensionsVersions', __args__, opts=opts, typ=GetExtensionsVersionsResult) + return __ret__.apply(lambda __response__: GetExtensionsVersionsResult( + extensions_infos=pulumi.get(__response__, 'extensions_infos'), + filters=pulumi.get(__response__, 'filters'), + id=pulumi.get(__response__, 'id'), + talos_version=pulumi.get(__response__, 'talos_version'))) diff --git a/sdk/python/pulumiverse_talos/imagefactory/get_overlays_versions.py b/sdk/python/pulumiverse_talos/imagefactory/get_overlays_versions.py new file mode 100644 index 00000000..529a74ba --- /dev/null +++ b/sdk/python/pulumiverse_talos/imagefactory/get_overlays_versions.py @@ -0,0 +1,154 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = [ + 'GetOverlaysVersionsResult', + 'AwaitableGetOverlaysVersionsResult', + 'get_overlays_versions', + 'get_overlays_versions_output', +] + +@pulumi.output_type +class GetOverlaysVersionsResult: + """ + A collection of values returned by getOverlaysVersions. + """ + def __init__(__self__, filters=None, id=None, overlays_infos=None, talos_version=None): + if filters and not isinstance(filters, dict): + raise TypeError("Expected argument 'filters' to be a dict") + pulumi.set(__self__, "filters", filters) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if overlays_infos and not isinstance(overlays_infos, list): + raise TypeError("Expected argument 'overlays_infos' to be a list") + pulumi.set(__self__, "overlays_infos", overlays_infos) + if talos_version and not isinstance(talos_version, str): + raise TypeError("Expected argument 'talos_version' to be a str") + pulumi.set(__self__, "talos_version", talos_version) + + @property + @pulumi.getter + def filters(self) -> Optional['outputs.GetOverlaysVersionsFiltersResult']: + """ + The filter to apply to the overlays list. + """ + return pulumi.get(self, "filters") + + @property + @pulumi.getter + def id(self) -> str: + """ + The ID of this resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="overlaysInfos") + def overlays_infos(self) -> Sequence['outputs.GetOverlaysVersionsOverlaysInfoResult']: + """ + The list of available extensions for the specified talos version. + """ + return pulumi.get(self, "overlays_infos") + + @property + @pulumi.getter(name="talosVersion") + def talos_version(self) -> str: + """ + The talos version to get overlays for. + """ + return pulumi.get(self, "talos_version") + + +class AwaitableGetOverlaysVersionsResult(GetOverlaysVersionsResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetOverlaysVersionsResult( + filters=self.filters, + id=self.id, + overlays_infos=self.overlays_infos, + talos_version=self.talos_version) + + +def get_overlays_versions(filters: Optional[Union['GetOverlaysVersionsFiltersArgs', 'GetOverlaysVersionsFiltersArgsDict']] = None, + talos_version: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetOverlaysVersionsResult: + """ + The image factory overlays versions data source provides a list of available overlays for a specific talos version from the image factory. + + ## Example Usage + + ```python + import pulumi + import pulumi_talos as talos + + this = talos.imageFactory.get_overlays_versions(talos_version="v1.7.5", + filters={ + "name": "rock4cplus", + }) + ``` + + + :param Union['GetOverlaysVersionsFiltersArgs', 'GetOverlaysVersionsFiltersArgsDict'] filters: The filter to apply to the overlays list. + :param str talos_version: The talos version to get overlays for. + """ + __args__ = dict() + __args__['filters'] = filters + __args__['talosVersion'] = talos_version + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('talos:imageFactory/getOverlaysVersions:getOverlaysVersions', __args__, opts=opts, typ=GetOverlaysVersionsResult).value + + return AwaitableGetOverlaysVersionsResult( + filters=pulumi.get(__ret__, 'filters'), + id=pulumi.get(__ret__, 'id'), + overlays_infos=pulumi.get(__ret__, 'overlays_infos'), + talos_version=pulumi.get(__ret__, 'talos_version')) +def get_overlays_versions_output(filters: Optional[pulumi.Input[Optional[Union['GetOverlaysVersionsFiltersArgs', 'GetOverlaysVersionsFiltersArgsDict']]]] = None, + talos_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetOverlaysVersionsResult]: + """ + The image factory overlays versions data source provides a list of available overlays for a specific talos version from the image factory. + + ## Example Usage + + ```python + import pulumi + import pulumi_talos as talos + + this = talos.imageFactory.get_overlays_versions(talos_version="v1.7.5", + filters={ + "name": "rock4cplus", + }) + ``` + + + :param Union['GetOverlaysVersionsFiltersArgs', 'GetOverlaysVersionsFiltersArgsDict'] filters: The filter to apply to the overlays list. + :param str talos_version: The talos version to get overlays for. + """ + __args__ = dict() + __args__['filters'] = filters + __args__['talosVersion'] = talos_version + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('talos:imageFactory/getOverlaysVersions:getOverlaysVersions', __args__, opts=opts, typ=GetOverlaysVersionsResult) + return __ret__.apply(lambda __response__: GetOverlaysVersionsResult( + filters=pulumi.get(__response__, 'filters'), + id=pulumi.get(__response__, 'id'), + overlays_infos=pulumi.get(__response__, 'overlays_infos'), + talos_version=pulumi.get(__response__, 'talos_version'))) diff --git a/sdk/python/pulumiverse_talos/imagefactory/get_urls.py b/sdk/python/pulumiverse_talos/imagefactory/get_urls.py new file mode 100644 index 00000000..d0787f3f --- /dev/null +++ b/sdk/python/pulumiverse_talos/imagefactory/get_urls.py @@ -0,0 +1,154 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs + +__all__ = [ + 'GetUrlsResult', + 'AwaitableGetUrlsResult', + 'get_urls', + 'get_urls_output', +] + +@pulumi.output_type +class GetUrlsResult: + """ + A collection of values returned by getUrls. + """ + def __init__(__self__, architecture=None, id=None, platform=None, sbc=None, schematic_id=None, talos_version=None, urls=None): + if architecture and not isinstance(architecture, str): + raise TypeError("Expected argument 'architecture' to be a str") + pulumi.set(__self__, "architecture", architecture) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if platform and not isinstance(platform, str): + raise TypeError("Expected argument 'platform' to be a str") + pulumi.set(__self__, "platform", platform) + if sbc and not isinstance(sbc, str): + raise TypeError("Expected argument 'sbc' to be a str") + pulumi.set(__self__, "sbc", sbc) + if schematic_id and not isinstance(schematic_id, str): + raise TypeError("Expected argument 'schematic_id' to be a str") + pulumi.set(__self__, "schematic_id", schematic_id) + if talos_version and not isinstance(talos_version, str): + raise TypeError("Expected argument 'talos_version' to be a str") + pulumi.set(__self__, "talos_version", talos_version) + if urls and not isinstance(urls, dict): + raise TypeError("Expected argument 'urls' to be a dict") + pulumi.set(__self__, "urls", urls) + + @property + @pulumi.getter + def architecture(self) -> str: + return pulumi.get(self, "architecture") + + @property + @pulumi.getter + def id(self) -> str: + return pulumi.get(self, "id") + + @property + @pulumi.getter + def platform(self) -> Optional[str]: + return pulumi.get(self, "platform") + + @property + @pulumi.getter + def sbc(self) -> Optional[str]: + return pulumi.get(self, "sbc") + + @property + @pulumi.getter(name="schematicId") + def schematic_id(self) -> str: + return pulumi.get(self, "schematic_id") + + @property + @pulumi.getter(name="talosVersion") + def talos_version(self) -> str: + return pulumi.get(self, "talos_version") + + @property + @pulumi.getter + def urls(self) -> 'outputs.GetUrlsUrlsResult': + return pulumi.get(self, "urls") + + +class AwaitableGetUrlsResult(GetUrlsResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetUrlsResult( + architecture=self.architecture, + id=self.id, + platform=self.platform, + sbc=self.sbc, + schematic_id=self.schematic_id, + talos_version=self.talos_version, + urls=self.urls) + + +def get_urls(architecture: Optional[str] = None, + platform: Optional[str] = None, + sbc: Optional[str] = None, + schematic_id: Optional[str] = None, + talos_version: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetUrlsResult: + """ + Generates URLs for different assets supported by the Talos image factory. + """ + __args__ = dict() + __args__['architecture'] = architecture + __args__['platform'] = platform + __args__['sbc'] = sbc + __args__['schematicId'] = schematic_id + __args__['talosVersion'] = talos_version + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('talos:imageFactory/getUrls:getUrls', __args__, opts=opts, typ=GetUrlsResult).value + + return AwaitableGetUrlsResult( + architecture=pulumi.get(__ret__, 'architecture'), + id=pulumi.get(__ret__, 'id'), + platform=pulumi.get(__ret__, 'platform'), + sbc=pulumi.get(__ret__, 'sbc'), + schematic_id=pulumi.get(__ret__, 'schematic_id'), + talos_version=pulumi.get(__ret__, 'talos_version'), + urls=pulumi.get(__ret__, 'urls')) +def get_urls_output(architecture: Optional[pulumi.Input[Optional[str]]] = None, + platform: Optional[pulumi.Input[Optional[str]]] = None, + sbc: Optional[pulumi.Input[Optional[str]]] = None, + schematic_id: Optional[pulumi.Input[str]] = None, + talos_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetUrlsResult]: + """ + Generates URLs for different assets supported by the Talos image factory. + """ + __args__ = dict() + __args__['architecture'] = architecture + __args__['platform'] = platform + __args__['sbc'] = sbc + __args__['schematicId'] = schematic_id + __args__['talosVersion'] = talos_version + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('talos:imageFactory/getUrls:getUrls', __args__, opts=opts, typ=GetUrlsResult) + return __ret__.apply(lambda __response__: GetUrlsResult( + architecture=pulumi.get(__response__, 'architecture'), + id=pulumi.get(__response__, 'id'), + platform=pulumi.get(__response__, 'platform'), + sbc=pulumi.get(__response__, 'sbc'), + schematic_id=pulumi.get(__response__, 'schematic_id'), + talos_version=pulumi.get(__response__, 'talos_version'), + urls=pulumi.get(__response__, 'urls'))) diff --git a/sdk/python/pulumiverse_talos/imagefactory/get_versions.py b/sdk/python/pulumiverse_talos/imagefactory/get_versions.py new file mode 100644 index 00000000..bdb91154 --- /dev/null +++ b/sdk/python/pulumiverse_talos/imagefactory/get_versions.py @@ -0,0 +1,110 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = [ + 'GetVersionsResult', + 'AwaitableGetVersionsResult', + 'get_versions', + 'get_versions_output', +] + +@pulumi.output_type +class GetVersionsResult: + """ + A collection of values returned by getVersions. + """ + def __init__(__self__, filters=None, id=None, talos_versions=None): + if filters and not isinstance(filters, dict): + raise TypeError("Expected argument 'filters' to be a dict") + pulumi.set(__self__, "filters", filters) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if talos_versions and not isinstance(talos_versions, list): + raise TypeError("Expected argument 'talos_versions' to be a list") + pulumi.set(__self__, "talos_versions", talos_versions) + + @property + @pulumi.getter + def filters(self) -> Optional['outputs.GetVersionsFiltersResult']: + """ + The filter to apply to the overlays list. + """ + return pulumi.get(self, "filters") + + @property + @pulumi.getter + def id(self) -> str: + """ + The ID of this resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="talosVersions") + def talos_versions(self) -> Sequence[str]: + """ + The list of available talos versions. + """ + return pulumi.get(self, "talos_versions") + + +class AwaitableGetVersionsResult(GetVersionsResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetVersionsResult( + filters=self.filters, + id=self.id, + talos_versions=self.talos_versions) + + +def get_versions(filters: Optional[Union['GetVersionsFiltersArgs', 'GetVersionsFiltersArgsDict']] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetVersionsResult: + """ + The image factory versions data source provides a list of available talos versions from the image factory. + + + :param Union['GetVersionsFiltersArgs', 'GetVersionsFiltersArgsDict'] filters: The filter to apply to the overlays list. + """ + __args__ = dict() + __args__['filters'] = filters + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('talos:imageFactory/getVersions:getVersions', __args__, opts=opts, typ=GetVersionsResult).value + + return AwaitableGetVersionsResult( + filters=pulumi.get(__ret__, 'filters'), + id=pulumi.get(__ret__, 'id'), + talos_versions=pulumi.get(__ret__, 'talos_versions')) +def get_versions_output(filters: Optional[pulumi.Input[Optional[Union['GetVersionsFiltersArgs', 'GetVersionsFiltersArgsDict']]]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetVersionsResult]: + """ + The image factory versions data source provides a list of available talos versions from the image factory. + + + :param Union['GetVersionsFiltersArgs', 'GetVersionsFiltersArgsDict'] filters: The filter to apply to the overlays list. + """ + __args__ = dict() + __args__['filters'] = filters + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('talos:imageFactory/getVersions:getVersions', __args__, opts=opts, typ=GetVersionsResult) + return __ret__.apply(lambda __response__: GetVersionsResult( + filters=pulumi.get(__response__, 'filters'), + id=pulumi.get(__response__, 'id'), + talos_versions=pulumi.get(__response__, 'talos_versions'))) diff --git a/sdk/python/pulumiverse_talos/imagefactory/outputs.py b/sdk/python/pulumiverse_talos/imagefactory/outputs.py new file mode 100644 index 00000000..60aca932 --- /dev/null +++ b/sdk/python/pulumiverse_talos/imagefactory/outputs.py @@ -0,0 +1,283 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = [ + 'GetExtensionsVersionsExtensionsInfoResult', + 'GetExtensionsVersionsFiltersResult', + 'GetOverlaysVersionsFiltersResult', + 'GetOverlaysVersionsOverlaysInfoResult', + 'GetUrlsUrlsResult', + 'GetVersionsFiltersResult', +] + +@pulumi.output_type +class GetExtensionsVersionsExtensionsInfoResult(dict): + def __init__(__self__, *, + author: str, + description: str, + digest: str, + name: str, + ref: str): + pulumi.set(__self__, "author", author) + pulumi.set(__self__, "description", description) + pulumi.set(__self__, "digest", digest) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "ref", ref) + + @property + @pulumi.getter + def author(self) -> str: + return pulumi.get(self, "author") + + @property + @pulumi.getter + def description(self) -> str: + return pulumi.get(self, "description") + + @property + @pulumi.getter + def digest(self) -> str: + return pulumi.get(self, "digest") + + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def ref(self) -> str: + return pulumi.get(self, "ref") + + +@pulumi.output_type +class GetExtensionsVersionsFiltersResult(dict): + def __init__(__self__, *, + names: Optional[Sequence[str]] = None): + """ + :param Sequence[str] names: The name of the extension to filter by. + """ + if names is not None: + pulumi.set(__self__, "names", names) + + @property + @pulumi.getter + def names(self) -> Optional[Sequence[str]]: + """ + The name of the extension to filter by. + """ + return pulumi.get(self, "names") + + +@pulumi.output_type +class GetOverlaysVersionsFiltersResult(dict): + def __init__(__self__, *, + name: Optional[str] = None): + """ + :param str name: The name of the overlay to filter by. + """ + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + The name of the overlay to filter by. + """ + return pulumi.get(self, "name") + + +@pulumi.output_type +class GetOverlaysVersionsOverlaysInfoResult(dict): + def __init__(__self__, *, + digest: str, + image: str, + name: str, + ref: str): + pulumi.set(__self__, "digest", digest) + pulumi.set(__self__, "image", image) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "ref", ref) + + @property + @pulumi.getter + def digest(self) -> str: + return pulumi.get(self, "digest") + + @property + @pulumi.getter + def image(self) -> str: + return pulumi.get(self, "image") + + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def ref(self) -> str: + return pulumi.get(self, "ref") + + +@pulumi.output_type +class GetUrlsUrlsResult(dict): + def __init__(__self__, *, + disk_image: str, + disk_image_secureboot: str, + initramfs: str, + installer: str, + installer_secureboot: str, + iso: str, + iso_secureboot: str, + kernel: str, + kernel_command_line: str, + pxe: str, + uki: str): + """ + :param str disk_image: The URL for the disk image. + :param str disk_image_secureboot: The URL for the disk image with secure boot. + :param str initramfs: The URL for the initramfs image. + :param str installer: The URL for the installer image. + :param str installer_secureboot: The URL for the installer image with secure boot. + :param str iso: The URL for the ISO image. + :param str iso_secureboot: The URL for the ISO image with secure boot. + :param str kernel: The URL for the kernel image. + :param str kernel_command_line: The URL for the kernel command line. + :param str pxe: The URL for the PXE image. + :param str uki: The URL for the UKI image. + """ + pulumi.set(__self__, "disk_image", disk_image) + pulumi.set(__self__, "disk_image_secureboot", disk_image_secureboot) + pulumi.set(__self__, "initramfs", initramfs) + pulumi.set(__self__, "installer", installer) + pulumi.set(__self__, "installer_secureboot", installer_secureboot) + pulumi.set(__self__, "iso", iso) + pulumi.set(__self__, "iso_secureboot", iso_secureboot) + pulumi.set(__self__, "kernel", kernel) + pulumi.set(__self__, "kernel_command_line", kernel_command_line) + pulumi.set(__self__, "pxe", pxe) + pulumi.set(__self__, "uki", uki) + + @property + @pulumi.getter(name="diskImage") + def disk_image(self) -> str: + """ + The URL for the disk image. + """ + return pulumi.get(self, "disk_image") + + @property + @pulumi.getter(name="diskImageSecureboot") + def disk_image_secureboot(self) -> str: + """ + The URL for the disk image with secure boot. + """ + return pulumi.get(self, "disk_image_secureboot") + + @property + @pulumi.getter + def initramfs(self) -> str: + """ + The URL for the initramfs image. + """ + return pulumi.get(self, "initramfs") + + @property + @pulumi.getter + def installer(self) -> str: + """ + The URL for the installer image. + """ + return pulumi.get(self, "installer") + + @property + @pulumi.getter(name="installerSecureboot") + def installer_secureboot(self) -> str: + """ + The URL for the installer image with secure boot. + """ + return pulumi.get(self, "installer_secureboot") + + @property + @pulumi.getter + def iso(self) -> str: + """ + The URL for the ISO image. + """ + return pulumi.get(self, "iso") + + @property + @pulumi.getter(name="isoSecureboot") + def iso_secureboot(self) -> str: + """ + The URL for the ISO image with secure boot. + """ + return pulumi.get(self, "iso_secureboot") + + @property + @pulumi.getter + def kernel(self) -> str: + """ + The URL for the kernel image. + """ + return pulumi.get(self, "kernel") + + @property + @pulumi.getter(name="kernelCommandLine") + def kernel_command_line(self) -> str: + """ + The URL for the kernel command line. + """ + return pulumi.get(self, "kernel_command_line") + + @property + @pulumi.getter + def pxe(self) -> str: + """ + The URL for the PXE image. + """ + return pulumi.get(self, "pxe") + + @property + @pulumi.getter + def uki(self) -> str: + """ + The URL for the UKI image. + """ + return pulumi.get(self, "uki") + + +@pulumi.output_type +class GetVersionsFiltersResult(dict): + def __init__(__self__, *, + stable_versions_only: Optional[bool] = None): + """ + :param bool stable_versions_only: If set to true, only stable versions will be returned. If set to false, all versions will be returned. + """ + if stable_versions_only is not None: + pulumi.set(__self__, "stable_versions_only", stable_versions_only) + + @property + @pulumi.getter(name="stableVersionsOnly") + def stable_versions_only(self) -> Optional[bool]: + """ + If set to true, only stable versions will be returned. If set to false, all versions will be returned. + """ + return pulumi.get(self, "stable_versions_only") + + diff --git a/sdk/python/pulumiverse_talos/imagefactory/schematic.py b/sdk/python/pulumiverse_talos/imagefactory/schematic.py new file mode 100644 index 00000000..4bf7bb2e --- /dev/null +++ b/sdk/python/pulumiverse_talos/imagefactory/schematic.py @@ -0,0 +1,150 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = ['SchematicArgs', 'Schematic'] + +@pulumi.input_type +class SchematicArgs: + def __init__(__self__, *, + schematic: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a Schematic resource. + :param pulumi.Input[str] schematic: The schematic yaml respresentation to generate the image. + """ + if schematic is not None: + pulumi.set(__self__, "schematic", schematic) + + @property + @pulumi.getter + def schematic(self) -> Optional[pulumi.Input[str]]: + """ + The schematic yaml respresentation to generate the image. + """ + return pulumi.get(self, "schematic") + + @schematic.setter + def schematic(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "schematic", value) + + +@pulumi.input_type +class _SchematicState: + def __init__(__self__, *, + schematic: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering Schematic resources. + :param pulumi.Input[str] schematic: The schematic yaml respresentation to generate the image. + """ + if schematic is not None: + pulumi.set(__self__, "schematic", schematic) + + @property + @pulumi.getter + def schematic(self) -> Optional[pulumi.Input[str]]: + """ + The schematic yaml respresentation to generate the image. + """ + return pulumi.get(self, "schematic") + + @schematic.setter + def schematic(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "schematic", value) + + +class Schematic(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + schematic: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + The image factory schematic resource allows you to create a schematic for a Talos image. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] schematic: The schematic yaml respresentation to generate the image. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[SchematicArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + The image factory schematic resource allows you to create a schematic for a Talos image. + + :param str resource_name: The name of the resource. + :param SchematicArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(SchematicArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + schematic: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = SchematicArgs.__new__(SchematicArgs) + + __props__.__dict__["schematic"] = schematic + super(Schematic, __self__).__init__( + 'talos:imageFactory/schematic:Schematic', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + schematic: Optional[pulumi.Input[str]] = None) -> 'Schematic': + """ + Get an existing Schematic resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] schematic: The schematic yaml respresentation to generate the image. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _SchematicState.__new__(_SchematicState) + + __props__.__dict__["schematic"] = schematic + return Schematic(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def schematic(self) -> pulumi.Output[Optional[str]]: + """ + The schematic yaml respresentation to generate the image. + """ + return pulumi.get(self, "schematic") + diff --git a/sdk/python/pulumiverse_talos/machine/_inputs.py b/sdk/python/pulumiverse_talos/machine/_inputs.py index 076999ea..2fb35299 100644 --- a/sdk/python/pulumiverse_talos/machine/_inputs.py +++ b/sdk/python/pulumiverse_talos/machine/_inputs.py @@ -17,6 +17,8 @@ __all__ = [ 'BootstrapTimeoutsArgs', 'BootstrapTimeoutsArgsDict', + 'ConfigurationApplyOnDestroyArgs', + 'ConfigurationApplyOnDestroyArgsDict', 'TimeoutArgs', 'TimeoutArgsDict', 'CertificateArgs', @@ -91,12 +93,88 @@ def create(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "create", value) +if not MYPY: + class ConfigurationApplyOnDestroyArgsDict(TypedDict): + graceful: NotRequired[pulumi.Input[bool]] + """ + Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true + """ + reboot: NotRequired[pulumi.Input[bool]] + """ + Reboot indicates whether node should reboot or halt after resetting. Default false + """ + reset: NotRequired[pulumi.Input[bool]] + """ + Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false + """ +elif False: + ConfigurationApplyOnDestroyArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ConfigurationApplyOnDestroyArgs: + def __init__(__self__, *, + graceful: Optional[pulumi.Input[bool]] = None, + reboot: Optional[pulumi.Input[bool]] = None, + reset: Optional[pulumi.Input[bool]] = None): + """ + :param pulumi.Input[bool] graceful: Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true + :param pulumi.Input[bool] reboot: Reboot indicates whether node should reboot or halt after resetting. Default false + :param pulumi.Input[bool] reset: Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false + """ + if graceful is not None: + pulumi.set(__self__, "graceful", graceful) + if reboot is not None: + pulumi.set(__self__, "reboot", reboot) + if reset is not None: + pulumi.set(__self__, "reset", reset) + + @property + @pulumi.getter + def graceful(self) -> Optional[pulumi.Input[bool]]: + """ + Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true + """ + return pulumi.get(self, "graceful") + + @graceful.setter + def graceful(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "graceful", value) + + @property + @pulumi.getter + def reboot(self) -> Optional[pulumi.Input[bool]]: + """ + Reboot indicates whether node should reboot or halt after resetting. Default false + """ + return pulumi.get(self, "reboot") + + @reboot.setter + def reboot(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "reboot", value) + + @property + @pulumi.getter + def reset(self) -> Optional[pulumi.Input[bool]]: + """ + Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false + """ + return pulumi.get(self, "reset") + + @reset.setter + def reset(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "reset", value) + + if not MYPY: class TimeoutArgsDict(TypedDict): create: NotRequired[pulumi.Input[str]] """ A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). """ + delete: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ update: NotRequired[pulumi.Input[str]] """ A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). @@ -108,13 +186,17 @@ class TimeoutArgsDict(TypedDict): class TimeoutArgs: def __init__(__self__, *, create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, update: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param pulumi.Input[str] delete: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. :param pulumi.Input[str] update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). """ if create is not None: pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) if update is not None: pulumi.set(__self__, "update", update) @@ -130,6 +212,18 @@ def create(self) -> Optional[pulumi.Input[str]]: def create(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "create", value) + @property + @pulumi.getter + def delete(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + return pulumi.get(self, "delete") + + @delete.setter + def delete(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "delete", value) + @property @pulumi.getter def update(self) -> Optional[pulumi.Input[str]]: diff --git a/sdk/python/pulumiverse_talos/machine/configuration_apply.py b/sdk/python/pulumiverse_talos/machine/configuration_apply.py index f9936545..577ed90e 100644 --- a/sdk/python/pulumiverse_talos/machine/configuration_apply.py +++ b/sdk/python/pulumiverse_talos/machine/configuration_apply.py @@ -27,6 +27,7 @@ def __init__(__self__, *, apply_mode: Optional[pulumi.Input[str]] = None, config_patches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, endpoint: Optional[pulumi.Input[str]] = None, + on_destroy: Optional[pulumi.Input['ConfigurationApplyOnDestroyArgs']] = None, timeouts: Optional[pulumi.Input['TimeoutArgs']] = None): """ The set of arguments for constructing a ConfigurationApply resource. @@ -36,6 +37,7 @@ def __init__(__self__, *, :param pulumi.Input[str] apply_mode: The mode of the apply operation :param pulumi.Input[Sequence[pulumi.Input[str]]] config_patches: The list of config patches to apply :param pulumi.Input[str] endpoint: The endpoint of the machine to bootstrap + :param pulumi.Input['ConfigurationApplyOnDestroyArgs'] on_destroy: Actions to be taken on destroy, if *reset* is not set this is a no-op. """ pulumi.set(__self__, "client_configuration", client_configuration) pulumi.set(__self__, "machine_configuration_input", machine_configuration_input) @@ -46,6 +48,8 @@ def __init__(__self__, *, pulumi.set(__self__, "config_patches", config_patches) if endpoint is not None: pulumi.set(__self__, "endpoint", endpoint) + if on_destroy is not None: + pulumi.set(__self__, "on_destroy", on_destroy) if timeouts is not None: pulumi.set(__self__, "timeouts", timeouts) @@ -121,6 +125,18 @@ def endpoint(self) -> Optional[pulumi.Input[str]]: def endpoint(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "endpoint", value) + @property + @pulumi.getter(name="onDestroy") + def on_destroy(self) -> Optional[pulumi.Input['ConfigurationApplyOnDestroyArgs']]: + """ + Actions to be taken on destroy, if *reset* is not set this is a no-op. + """ + return pulumi.get(self, "on_destroy") + + @on_destroy.setter + def on_destroy(self, value: Optional[pulumi.Input['ConfigurationApplyOnDestroyArgs']]): + pulumi.set(self, "on_destroy", value) + @property @pulumi.getter def timeouts(self) -> Optional[pulumi.Input['TimeoutArgs']]: @@ -141,6 +157,7 @@ def __init__(__self__, *, machine_configuration: Optional[pulumi.Input[str]] = None, machine_configuration_input: Optional[pulumi.Input[str]] = None, node: Optional[pulumi.Input[str]] = None, + on_destroy: Optional[pulumi.Input['ConfigurationApplyOnDestroyArgs']] = None, timeouts: Optional[pulumi.Input['TimeoutArgs']] = None): """ Input properties used for looking up and filtering ConfigurationApply resources. @@ -151,6 +168,7 @@ def __init__(__self__, *, :param pulumi.Input[str] machine_configuration: The generated machine configuration after applying patches :param pulumi.Input[str] machine_configuration_input: The machine configuration to apply :param pulumi.Input[str] node: The name of the node to bootstrap + :param pulumi.Input['ConfigurationApplyOnDestroyArgs'] on_destroy: Actions to be taken on destroy, if *reset* is not set this is a no-op. """ if apply_mode is not None: pulumi.set(__self__, "apply_mode", apply_mode) @@ -166,6 +184,8 @@ def __init__(__self__, *, pulumi.set(__self__, "machine_configuration_input", machine_configuration_input) if node is not None: pulumi.set(__self__, "node", node) + if on_destroy is not None: + pulumi.set(__self__, "on_destroy", on_destroy) if timeouts is not None: pulumi.set(__self__, "timeouts", timeouts) @@ -253,6 +273,18 @@ def node(self) -> Optional[pulumi.Input[str]]: def node(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "node", value) + @property + @pulumi.getter(name="onDestroy") + def on_destroy(self) -> Optional[pulumi.Input['ConfigurationApplyOnDestroyArgs']]: + """ + Actions to be taken on destroy, if *reset* is not set this is a no-op. + """ + return pulumi.get(self, "on_destroy") + + @on_destroy.setter + def on_destroy(self, value: Optional[pulumi.Input['ConfigurationApplyOnDestroyArgs']]): + pulumi.set(self, "on_destroy", value) + @property @pulumi.getter def timeouts(self) -> Optional[pulumi.Input['TimeoutArgs']]: @@ -274,6 +306,7 @@ def __init__(__self__, endpoint: Optional[pulumi.Input[str]] = None, machine_configuration_input: Optional[pulumi.Input[str]] = None, node: Optional[pulumi.Input[str]] = None, + on_destroy: Optional[pulumi.Input[Union['ConfigurationApplyOnDestroyArgs', 'ConfigurationApplyOnDestroyArgsDict']]] = None, timeouts: Optional[pulumi.Input[Union['TimeoutArgs', 'TimeoutArgsDict']]] = None, __props__=None): """ @@ -287,6 +320,7 @@ def __init__(__self__, :param pulumi.Input[str] endpoint: The endpoint of the machine to bootstrap :param pulumi.Input[str] machine_configuration_input: The machine configuration to apply :param pulumi.Input[str] node: The name of the node to bootstrap + :param pulumi.Input[Union['ConfigurationApplyOnDestroyArgs', 'ConfigurationApplyOnDestroyArgsDict']] on_destroy: Actions to be taken on destroy, if *reset* is not set this is a no-op. """ ... @overload @@ -318,6 +352,7 @@ def _internal_init(__self__, endpoint: Optional[pulumi.Input[str]] = None, machine_configuration_input: Optional[pulumi.Input[str]] = None, node: Optional[pulumi.Input[str]] = None, + on_destroy: Optional[pulumi.Input[Union['ConfigurationApplyOnDestroyArgs', 'ConfigurationApplyOnDestroyArgsDict']]] = None, timeouts: Optional[pulumi.Input[Union['TimeoutArgs', 'TimeoutArgsDict']]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) @@ -340,6 +375,7 @@ def _internal_init(__self__, if node is None and not opts.urn: raise TypeError("Missing required property 'node'") __props__.__dict__["node"] = node + __props__.__dict__["on_destroy"] = on_destroy __props__.__dict__["timeouts"] = timeouts __props__.__dict__["machine_configuration"] = None secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["machineConfiguration", "machineConfigurationInput"]) @@ -361,6 +397,7 @@ def get(resource_name: str, machine_configuration: Optional[pulumi.Input[str]] = None, machine_configuration_input: Optional[pulumi.Input[str]] = None, node: Optional[pulumi.Input[str]] = None, + on_destroy: Optional[pulumi.Input[Union['ConfigurationApplyOnDestroyArgs', 'ConfigurationApplyOnDestroyArgsDict']]] = None, timeouts: Optional[pulumi.Input[Union['TimeoutArgs', 'TimeoutArgsDict']]] = None) -> 'ConfigurationApply': """ Get an existing ConfigurationApply resource's state with the given name, id, and optional extra @@ -376,6 +413,7 @@ def get(resource_name: str, :param pulumi.Input[str] machine_configuration: The generated machine configuration after applying patches :param pulumi.Input[str] machine_configuration_input: The machine configuration to apply :param pulumi.Input[str] node: The name of the node to bootstrap + :param pulumi.Input[Union['ConfigurationApplyOnDestroyArgs', 'ConfigurationApplyOnDestroyArgsDict']] on_destroy: Actions to be taken on destroy, if *reset* is not set this is a no-op. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -388,6 +426,7 @@ def get(resource_name: str, __props__.__dict__["machine_configuration"] = machine_configuration __props__.__dict__["machine_configuration_input"] = machine_configuration_input __props__.__dict__["node"] = node + __props__.__dict__["on_destroy"] = on_destroy __props__.__dict__["timeouts"] = timeouts return ConfigurationApply(resource_name, opts=opts, __props__=__props__) @@ -447,6 +486,14 @@ def node(self) -> pulumi.Output[str]: """ return pulumi.get(self, "node") + @property + @pulumi.getter(name="onDestroy") + def on_destroy(self) -> pulumi.Output[Optional['outputs.ConfigurationApplyOnDestroy']]: + """ + Actions to be taken on destroy, if *reset* is not set this is a no-op. + """ + return pulumi.get(self, "on_destroy") + @property @pulumi.getter def timeouts(self) -> pulumi.Output[Optional['outputs.Timeout']]: diff --git a/sdk/python/pulumiverse_talos/machine/get_configuration.py b/sdk/python/pulumiverse_talos/machine/get_configuration.py index 64033159..ee25ee73 100644 --- a/sdk/python/pulumiverse_talos/machine/get_configuration.py +++ b/sdk/python/pulumiverse_talos/machine/get_configuration.py @@ -91,7 +91,7 @@ def config_patches(self) -> Optional[Sequence[str]]: @pulumi.getter def docs(self) -> Optional[bool]: """ - Whether to generate documentation for the generated configuration + Whether to generate documentation for the generated configuration. Defaults to false """ return pulumi.get(self, "docs") @@ -99,7 +99,7 @@ def docs(self) -> Optional[bool]: @pulumi.getter def examples(self) -> Optional[bool]: """ - Whether to generate examples for the generated configuration + Whether to generate examples for the generated configuration. Defaults to false """ return pulumi.get(self, "examples") @@ -204,8 +204,8 @@ def get_configuration(cluster_endpoint: Optional[str] = None, :param str cluster_endpoint: The endpoint of the talos kubernetes cluster :param str cluster_name: The name of the talos kubernetes cluster :param Sequence[str] config_patches: The list of config patches to apply to the generated configuration - :param bool docs: Whether to generate documentation for the generated configuration - :param bool examples: Whether to generate examples for the generated configuration + :param bool docs: Whether to generate documentation for the generated configuration. Defaults to false + :param bool examples: Whether to generate examples for the generated configuration. Defaults to false :param str kubernetes_version: The version of kubernetes to use :param Union['MachineSecretsArgs', 'MachineSecretsArgsDict'] machine_secrets: The secrets for the talos cluster :param str machine_type: The type of machine to generate the configuration for @@ -269,8 +269,8 @@ def get_configuration_output(cluster_endpoint: Optional[pulumi.Input[str]] = Non :param str cluster_endpoint: The endpoint of the talos kubernetes cluster :param str cluster_name: The name of the talos kubernetes cluster :param Sequence[str] config_patches: The list of config patches to apply to the generated configuration - :param bool docs: Whether to generate documentation for the generated configuration - :param bool examples: Whether to generate examples for the generated configuration + :param bool docs: Whether to generate documentation for the generated configuration. Defaults to false + :param bool examples: Whether to generate examples for the generated configuration. Defaults to false :param str kubernetes_version: The version of kubernetes to use :param Union['MachineSecretsArgs', 'MachineSecretsArgsDict'] machine_secrets: The secrets for the talos cluster :param str machine_type: The type of machine to generate the configuration for diff --git a/sdk/python/pulumiverse_talos/machine/outputs.py b/sdk/python/pulumiverse_talos/machine/outputs.py index 905d8e9a..06d328c0 100644 --- a/sdk/python/pulumiverse_talos/machine/outputs.py +++ b/sdk/python/pulumiverse_talos/machine/outputs.py @@ -17,6 +17,7 @@ __all__ = [ 'BootstrapTimeouts', + 'ConfigurationApplyOnDestroy', 'Timeout', 'CertificateResult', 'CertificatesResult', @@ -51,17 +52,64 @@ def create(self) -> Optional[str]: return pulumi.get(self, "create") +@pulumi.output_type +class ConfigurationApplyOnDestroy(dict): + def __init__(__self__, *, + graceful: Optional[bool] = None, + reboot: Optional[bool] = None, + reset: Optional[bool] = None): + """ + :param bool graceful: Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true + :param bool reboot: Reboot indicates whether node should reboot or halt after resetting. Default false + :param bool reset: Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false + """ + if graceful is not None: + pulumi.set(__self__, "graceful", graceful) + if reboot is not None: + pulumi.set(__self__, "reboot", reboot) + if reset is not None: + pulumi.set(__self__, "reset", reset) + + @property + @pulumi.getter + def graceful(self) -> Optional[bool]: + """ + Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true + """ + return pulumi.get(self, "graceful") + + @property + @pulumi.getter + def reboot(self) -> Optional[bool]: + """ + Reboot indicates whether node should reboot or halt after resetting. Default false + """ + return pulumi.get(self, "reboot") + + @property + @pulumi.getter + def reset(self) -> Optional[bool]: + """ + Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false + """ + return pulumi.get(self, "reset") + + @pulumi.output_type class Timeout(dict): def __init__(__self__, *, create: Optional[str] = None, + delete: Optional[str] = None, update: Optional[str] = None): """ :param str create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param str delete: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. :param str update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). """ if create is not None: pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) if update is not None: pulumi.set(__self__, "update", update) @@ -73,6 +121,14 @@ def create(self) -> Optional[str]: """ return pulumi.get(self, "create") + @property + @pulumi.getter + def delete(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + return pulumi.get(self, "delete") + @property @pulumi.getter def update(self) -> Optional[str]: diff --git a/sdk/python/pulumiverse_talos/provider.py b/sdk/python/pulumiverse_talos/provider.py index ef297a32..2aa72101 100644 --- a/sdk/python/pulumiverse_talos/provider.py +++ b/sdk/python/pulumiverse_talos/provider.py @@ -18,11 +18,26 @@ @pulumi.input_type class ProviderArgs: - def __init__(__self__): + def __init__(__self__, *, + image_factory_url: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a Provider resource. + :param pulumi.Input[str] image_factory_url: The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev. """ - pass + if image_factory_url is not None: + pulumi.set(__self__, "image_factory_url", image_factory_url) + + @property + @pulumi.getter(name="imageFactoryUrl") + def image_factory_url(self) -> Optional[pulumi.Input[str]]: + """ + The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev. + """ + return pulumi.get(self, "image_factory_url") + + @image_factory_url.setter + def image_factory_url(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "image_factory_url", value) class Provider(pulumi.ProviderResource): @@ -30,6 +45,7 @@ class Provider(pulumi.ProviderResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + image_factory_url: Optional[pulumi.Input[str]] = None, __props__=None): """ The provider type for the talos package. By default, resources use package-wide configuration @@ -39,6 +55,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] image_factory_url: The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev. """ ... @overload @@ -67,6 +84,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + image_factory_url: Optional[pulumi.Input[str]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -76,9 +94,18 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ProviderArgs.__new__(ProviderArgs) + __props__.__dict__["image_factory_url"] = image_factory_url super(Provider, __self__).__init__( 'talos', resource_name, __props__, opts) + @property + @pulumi.getter(name="imageFactoryUrl") + def image_factory_url(self) -> pulumi.Output[Optional[str]]: + """ + The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev. + """ + return pulumi.get(self, "image_factory_url") +