{
  "name": "matchbox",
  "displayName": "Matchbox",
  "version": "0.2.0",
  "description": "A Pulumi package for creating and managing the Matchbox iPXE server.",
  "keywords": [
    "pulumi",
    "matchbox",
    "category/network"
  ],
  "homepage": "https://www.pulumi.com",
  "license": "Apache-2.0",
  "attribution": "This Pulumi package is based on the [`matchbox` Terraform Provider](https://github.com/poseidon/terraform-provider-matchbox).",
  "repository": "https://github.com/pulumiverse/pulumi-matchbox",
  "pluginDownloadURL": "github://api.github.com/pulumiverse",
  "publisher": "Pulumiverse",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "packageReferences": {
        "Pulumi": "3.*"
      },
      "compatibility": "tfbridge20",
      "rootNamespace": "Pulumiverse",
      "respectSchemaVersion": true
    },
    "go": {
      "importBasePath": "github.com/pulumiverse/pulumi-matchbox/sdk/go/matchbox",
      "generateResourceContainerTypes": true,
      "generateExtraInputTypes": true,
      "respectSchemaVersion": true
    },
    "nodejs": {
      "packageName": "@pulumiverse/matchbox",
      "packageDescription": "A Pulumi package for creating and managing the Matchbox iPXE server.",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/poseidon/terraform-provider-matchbox)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-matchbox` repo](https://github.com/pulumiverse/pulumi-matchbox/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-matchbox` repo](https://github.com/poseidon/terraform-provider-matchbox/issues).",
      "dependencies": {
        "@pulumi/pulumi": "^3.0.0"
      },
      "devDependencies": {
        "@types/mime": "^2.0.0",
        "@types/node": "^10.0.0"
      },
      "compatibility": "tfbridge20",
      "disableUnionOutputTypes": true,
      "respectSchemaVersion": true
    },
    "python": {
      "packageName": "pulumiverse_matchbox",
      "requires": {
        "pulumi": ">=3.0.0,<4.0.0"
      },
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/poseidon/terraform-provider-matchbox)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-matchbox` repo](https://github.com/pulumiverse/pulumi-matchbox/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-matchbox` repo](https://github.com/poseidon/terraform-provider-matchbox/issues).",
      "compatibility": "tfbridge20",
      "respectSchemaVersion": true,
      "pyproject": {
        "enabled": true
      }
    }
  },
  "config": {
    "variables": {
      "ca": {
        "type": "string"
      },
      "clientCert": {
        "type": "string"
      },
      "clientKey": {
        "type": "string",
        "secret": true
      },
      "endpoint": {
        "type": "string"
      }
    },
    "defaults": [
      "ca",
      "clientCert",
      "clientKey",
      "endpoint"
    ]
  },
  "provider": {
    "description": "The provider type for the matchbox 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": {
      "ca": {
        "type": "string"
      },
      "clientCert": {
        "type": "string"
      },
      "clientKey": {
        "type": "string",
        "secret": true
      },
      "endpoint": {
        "type": "string"
      }
    },
    "type": "object",
    "required": [
      "ca",
      "clientCert",
      "clientKey",
      "endpoint"
    ],
    "inputProperties": {
      "ca": {
        "type": "string"
      },
      "clientCert": {
        "type": "string"
      },
      "clientKey": {
        "type": "string",
        "secret": true
      },
      "endpoint": {
        "type": "string"
      }
    },
    "requiredInputs": [
      "ca",
      "clientCert",
      "clientKey",
      "endpoint"
    ]
  },
  "resources": {
    "matchbox:index/group:Group": {
      "description": "## # Group Resource\n\nA Group matches (one or more) machines and declares a machine should be boot with a named `profile`.\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as matchbox from \"@pulumiverse/matchbox\";\n\nconst node1 = new matchbox.Group(\"node1\", {\n    metadata: {\n        custom_variable: \"machine_specific_value_here\",\n    },\n    profile: matchbox_profile.myprofile.name,\n    selector: {\n        mac: \"52:54:00:a1:9c:ae\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_matchbox as matchbox\n\nnode1 = matchbox.Group(\"node1\",\n    metadata={\n        \"custom_variable\": \"machine_specific_value_here\",\n    },\n    profile=matchbox_profile[\"myprofile\"][\"name\"],\n    selector={\n        \"mac\": \"52:54:00:a1:9c:ae\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Matchbox = Pulumiverse.Matchbox;\n\nreturn await Deployment.RunAsync(() => \n{\n    var node1 = new Matchbox.Group(\"node1\", new()\n    {\n        Metadata = \n        {\n            { \"custom_variable\", \"machine_specific_value_here\" },\n        },\n        Profile = matchbox_profile.Myprofile.Name,\n        Selector = \n        {\n            { \"mac\", \"52:54:00:a1:9c:ae\" },\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-matchbox/sdk/go/matchbox\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := matchbox.NewGroup(ctx, \"node1\", &matchbox.GroupArgs{\n\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\"custom_variable\": pulumi.String(\"machine_specific_value_here\"),\n\t\t\t},\n\t\t\tProfile: pulumi.Any(matchbox_profile.Myprofile.Name),\n\t\t\tSelector: pulumi.StringMap{\n\t\t\t\t\"mac\": pulumi.String(\"52:54:00:a1:9c:ae\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.matchbox.Group;\nimport com.pulumi.matchbox.GroupArgs;\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 node1 = new Group(\"node1\", GroupArgs.builder()\n            .metadata(Map.of(\"custom_variable\", \"machine_specific_value_here\"))\n            .profile(matchbox_profile.myprofile().name())\n            .selector(Map.of(\"mac\", \"52:54:00:a1:9c:ae\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  node1:\n    type: matchbox:Group\n    properties:\n      metadata:\n        custom_variable: machine_specific_value_here\n      profile: ${matchbox_profile.myprofile.name}\n      selector:\n        mac: 52:54:00:a1:9c:ae\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of group metadata (optional, seldom used)\n"
        },
        "name": {
          "type": "string",
          "description": "Unqiue name for the machine matcher\n"
        },
        "profile": {
          "type": "string",
          "description": "Name of a Matchbox profile\n"
        },
        "selector": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of hardware machine selectors. See [reserved selectors](https://matchbox.psdn.io/matchbox/#reserved-selectors). An empty selector becomes a global default group that matches machines.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "profile"
      ],
      "inputProperties": {
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of group metadata (optional, seldom used)\n",
          "willReplaceOnChanges": true
        },
        "name": {
          "type": "string",
          "description": "Unqiue name for the machine matcher\n",
          "willReplaceOnChanges": true
        },
        "profile": {
          "type": "string",
          "description": "Name of a Matchbox profile\n",
          "willReplaceOnChanges": true
        },
        "selector": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of hardware machine selectors. See [reserved selectors](https://matchbox.psdn.io/matchbox/#reserved-selectors). An empty selector becomes a global default group that matches machines.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "profile"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Group resources.\n",
        "properties": {
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of group metadata (optional, seldom used)\n",
            "willReplaceOnChanges": true
          },
          "name": {
            "type": "string",
            "description": "Unqiue name for the machine matcher\n",
            "willReplaceOnChanges": true
          },
          "profile": {
            "type": "string",
            "description": "Name of a Matchbox profile\n",
            "willReplaceOnChanges": true
          },
          "selector": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of hardware machine selectors. See [reserved selectors](https://matchbox.psdn.io/matchbox/#reserved-selectors). An empty selector becomes a global default group that matches machines.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "matchbox:index/profile:Profile": {
      "description": "## # Profile Resource\n\nA Profile defines network boot and declarative provisioning configurations.\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nconst config = new pulumi.Config();\nconst osStream = config.get(\"osStream\") || \"stable\";\nconst osVersion = config.require(\"osVersion\");\nconst kernel = `https://builds.coreos.fedoraproject.org/prod/streams/${osStream}/builds/${osVersion}/x86_64/fedora-coreos-${osVersion}-live-kernel-x86_64`;\nconst initrd = `https://builds.coreos.fedoraproject.org/prod/streams/${osStream}/builds/${osVersion}/x86_64/fedora-coreos-${osVersion}-live-initramfs.x86_64.img`;\n```\n```python\nimport pulumi\n\nconfig = pulumi.Config()\nos_stream = config.get(\"osStream\")\nif os_stream is None:\n    os_stream = \"stable\"\nos_version = config.require(\"osVersion\")\nkernel = f\"https://builds.coreos.fedoraproject.org/prod/streams/{os_stream}/builds/{os_version}/x86_64/fedora-coreos-{os_version}-live-kernel-x86_64\"\ninitrd = f\"https://builds.coreos.fedoraproject.org/prod/streams/{os_stream}/builds/{os_version}/x86_64/fedora-coreos-{os_version}-live-initramfs.x86_64.img\"\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var osStream = config.Get(\"osStream\") ?? \"stable\";\n    var osVersion = config.Require(\"osVersion\");\n    var kernel = $\"https://builds.coreos.fedoraproject.org/prod/streams/{osStream}/builds/{osVersion}/x86_64/fedora-coreos-{osVersion}-live-kernel-x86_64\";\n\n    var initrd = $\"https://builds.coreos.fedoraproject.org/prod/streams/{osStream}/builds/{osVersion}/x86_64/fedora-coreos-{osVersion}-live-initramfs.x86_64.img\";\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tosStream := \"stable\"\n\t\tif param := cfg.Get(\"osStream\"); param != \"\" {\n\t\t\tosStream = param\n\t\t}\n\t\tosVersion := cfg.Require(\"osVersion\")\n\t\t_ := fmt.Sprintf(\"https://builds.coreos.fedoraproject.org/prod/streams/%v/builds/%v/x86_64/fedora-coreos-%v-live-kernel-x86_64\", osStream, osVersion, osVersion)\n\t\t_ := fmt.Sprintf(\"https://builds.coreos.fedoraproject.org/prod/streams/%v/builds/%v/x86_64/fedora-coreos-%v-live-initramfs.x86_64.img\", osStream, osVersion, osVersion)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var osStream = config.get(\"osStream\").orElse(\"stable\");\n        final var osVersion = config.get(\"osVersion\");\n        final var kernel = String.format(\"https://builds.coreos.fedoraproject.org/prod/streams/%s/builds/%s/x86_64/fedora-coreos-%s-live-kernel-x86_64\", osStream,osVersion,osVersion);\n\n        final var initrd = String.format(\"https://builds.coreos.fedoraproject.org/prod/streams/%s/builds/%s/x86_64/fedora-coreos-%s-live-initramfs.x86_64.img\", osStream,osVersion,osVersion);\n\n    }\n}\n```\n```yaml\nconfiguration:\n  osStream:\n    type: string\n    default: stable\n  osVersion:\n    type: string\nvariables:\n  kernel: https://builds.coreos.fedoraproject.org/prod/streams/${osStream}/builds/${osVersion}/x86_64/fedora-coreos-${osVersion}-live-kernel-x86_64\n  initrd: https://builds.coreos.fedoraproject.org/prod/streams/${osStream}/builds/${osVersion}/x86_64/fedora-coreos-${osVersion}-live-initramfs.x86_64.img\n```\n<!--End PulumiCodeChooser -->\n\n",
      "properties": {
        "args": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of kernel arguments\n"
        },
        "containerLinuxConfig": {
          "type": "string",
          "description": "CoreOS Container Linux Config (CLC) (for backwards compatibility)\n"
        },
        "genericConfig": {
          "type": "string",
          "description": "Generic configuration\n"
        },
        "initrds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of URLs to init RAM filesystems\n"
        },
        "kernel": {
          "type": "string",
          "description": "URL of the kernel image to boot\n"
        },
        "name": {
          "type": "string",
          "description": "Unqiue name for the machine matcher\n"
        },
        "rawIgnition": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "inputProperties": {
        "args": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of kernel arguments\n",
          "willReplaceOnChanges": true
        },
        "containerLinuxConfig": {
          "type": "string",
          "description": "CoreOS Container Linux Config (CLC) (for backwards compatibility)\n",
          "willReplaceOnChanges": true
        },
        "genericConfig": {
          "type": "string",
          "description": "Generic configuration\n",
          "willReplaceOnChanges": true
        },
        "initrds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of URLs to init RAM filesystems\n",
          "willReplaceOnChanges": true
        },
        "kernel": {
          "type": "string",
          "description": "URL of the kernel image to boot\n",
          "willReplaceOnChanges": true
        },
        "name": {
          "type": "string",
          "description": "Unqiue name for the machine matcher\n",
          "willReplaceOnChanges": true
        },
        "rawIgnition": {
          "type": "string",
          "willReplaceOnChanges": true
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Profile resources.\n",
        "properties": {
          "args": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of kernel arguments\n",
            "willReplaceOnChanges": true
          },
          "containerLinuxConfig": {
            "type": "string",
            "description": "CoreOS Container Linux Config (CLC) (for backwards compatibility)\n",
            "willReplaceOnChanges": true
          },
          "genericConfig": {
            "type": "string",
            "description": "Generic configuration\n",
            "willReplaceOnChanges": true
          },
          "initrds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of URLs to init RAM filesystems\n",
            "willReplaceOnChanges": true
          },
          "kernel": {
            "type": "string",
            "description": "URL of the kernel image to boot\n",
            "willReplaceOnChanges": true
          },
          "name": {
            "type": "string",
            "description": "Unqiue name for the machine matcher\n",
            "willReplaceOnChanges": true
          },
          "rawIgnition": {
            "type": "string",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    }
  }
}
