{
  "name": "ldap",
  "version": "2.0.1",
  "description": "A Pulumi provider dynamically bridged from ldap.",
  "attribution": "This Pulumi package is based on the [`ldap` Terraform Provider](https://github.com/elastic-infra/terraform-provider-ldap).",
  "repository": "https://github.com/elastic-infra/terraform-provider-ldap",
  "publisher": "elastic-infra",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "compatibility": "tfbridge20",
      "liftSingleValueMethodReturns": true,
      "respectSchemaVersion": true
    },
    "go": {
      "importBasePath": "github.com/pulumi/pulumi-terraform-provider/sdks/go/ldap/v2/ldap",
      "rootPackageName": "ldap",
      "liftSingleValueMethodReturns": true,
      "generateExtraInputTypes": true,
      "respectSchemaVersion": true
    },
    "java": {
      "basePackage": "",
      "buildFiles": "",
      "gradleNexusPublishPluginVersion": "",
      "gradleTest": ""
    },
    "nodejs": {
      "packageDescription": "A Pulumi provider dynamically bridged from ldap.",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/elastic-infra/terraform-provider-ldap)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-ldap` repo](https://github.com/elastic-infra/terraform-provider-ldap/issues).",
      "compatibility": "tfbridge20",
      "disableUnionOutputTypes": true,
      "liftSingleValueMethodReturns": true,
      "respectSchemaVersion": true
    },
    "python": {
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/elastic-infra/terraform-provider-ldap)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-ldap` repo](https://github.com/elastic-infra/terraform-provider-ldap/issues).",
      "compatibility": "tfbridge20",
      "respectSchemaVersion": true,
      "pyproject": {
        "enabled": true
      }
    }
  },
  "config": {
    "variables": {
      "bindPassword": {
        "type": "string",
        "description": "Password to authenticate the Bind user.\n"
      },
      "bindUser": {
        "type": "string",
        "description": "Bind user to be used for authenticating on the LDAP server.\n"
      },
      "ldapHost": {
        "type": "string",
        "description": "The LDAP server to connect to.\n"
      },
      "ldapPort": {
        "type": "number",
        "description": "The LDAP protocol port (default: 389).\n"
      },
      "startTls": {
        "type": "boolean",
        "description": "Upgrade TLS to secure the connection (default: false).\n"
      },
      "tls": {
        "type": "boolean",
        "description": "Enable TLS encryption for LDAP (LDAPS) (default: false).\n"
      },
      "tlsInsecure": {
        "type": "boolean",
        "description": "Don't verify server TLS certificate (default: false).\n"
      }
    },
    "defaults": [
      "bindPassword",
      "bindUser",
      "ldapHost"
    ]
  },
  "provider": {
    "description": "The provider type for the ldap 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": {
      "bindPassword": {
        "type": "string",
        "description": "Password to authenticate the Bind user.\n"
      },
      "bindUser": {
        "type": "string",
        "description": "Bind user to be used for authenticating on the LDAP server.\n"
      },
      "ldapHost": {
        "type": "string",
        "description": "The LDAP server to connect to.\n"
      }
    },
    "type": "object",
    "required": [
      "bindPassword",
      "bindUser",
      "ldapHost"
    ],
    "inputProperties": {
      "bindPassword": {
        "type": "string",
        "description": "Password to authenticate the Bind user.\n"
      },
      "bindUser": {
        "type": "string",
        "description": "Bind user to be used for authenticating on the LDAP server.\n"
      },
      "ldapHost": {
        "type": "string",
        "description": "The LDAP server to connect to.\n"
      },
      "ldapPort": {
        "type": "number",
        "description": "The LDAP protocol port (default: 389).\n"
      },
      "startTls": {
        "type": "boolean",
        "description": "Upgrade TLS to secure the connection (default: false).\n"
      },
      "tls": {
        "type": "boolean",
        "description": "Enable TLS encryption for LDAP (LDAPS) (default: false).\n"
      },
      "tlsInsecure": {
        "type": "boolean",
        "description": "Don't verify server TLS certificate (default: false).\n"
      }
    },
    "requiredInputs": [
      "bindPassword",
      "bindUser",
      "ldapHost"
    ]
  },
  "resources": {
    "ldap:index/object:Object": {
      "description": "Provides a LDAP Object.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ldap from \"@pulumi/ldap\";\n\nconst usersExampleCom = new ldap.Object(\"usersExampleCom\", {\n    dn: \"ou=users,dc=example,dc=com\",\n    objectClasses: [\n        \"top\",\n        \"organizationalUnit\",\n    ],\n});\nconst a123456 = new ldap.Object(\"a123456\", {\n    attributes: [\n        {\n            sn: \"Doe\",\n        },\n        {\n            givenName: \"John\",\n        },\n        {\n            cn: \"John Doe\",\n        },\n        {\n            displayName: \"Mr. John K. Doe, esq.\",\n        },\n        {\n            mail: \"john.doe@example.com\",\n        },\n        {\n            mail: \"jdoe@example.com\",\n        },\n        {\n            userPassword: \"password\",\n        },\n        {\n            uidNumber: \"1234\",\n        },\n        {\n            gidNumber: \"1234\",\n        },\n        {\n            homeDirectory: \"/home/jdoe\",\n        },\n        {\n            loginShell: \"/bin/bash\",\n        },\n    ],\n    dn: pulumi.interpolate`uid=a123456,${usersExampleCom.dn}`,\n    objectClasses: [\n        \"inetOrgPerson\",\n        \"posixAccount\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ldap as ldap\n\nusers_example_com = ldap.Object(\"usersExampleCom\",\n    dn=\"ou=users,dc=example,dc=com\",\n    object_classes=[\n        \"top\",\n        \"organizationalUnit\",\n    ])\na123456 = ldap.Object(\"a123456\",\n    attributes=[\n        {\n            \"sn\": \"Doe\",\n        },\n        {\n            \"givenName\": \"John\",\n        },\n        {\n            \"cn\": \"John Doe\",\n        },\n        {\n            \"displayName\": \"Mr. John K. Doe, esq.\",\n        },\n        {\n            \"mail\": \"john.doe@example.com\",\n        },\n        {\n            \"mail\": \"jdoe@example.com\",\n        },\n        {\n            \"userPassword\": \"password\",\n        },\n        {\n            \"uidNumber\": \"1234\",\n        },\n        {\n            \"gidNumber\": \"1234\",\n        },\n        {\n            \"homeDirectory\": \"/home/jdoe\",\n        },\n        {\n            \"loginShell\": \"/bin/bash\",\n        },\n    ],\n    dn=users_example_com.dn.apply(lambda dn: f\"uid=a123456,{dn}\"),\n    object_classes=[\n        \"inetOrgPerson\",\n        \"posixAccount\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ldap = Pulumi.Ldap;\n\nreturn await Deployment.RunAsync(() => \n{\n    var usersExampleCom = new Ldap.Object(\"usersExampleCom\", new()\n    {\n        Dn = \"ou=users,dc=example,dc=com\",\n        ObjectClasses = new[]\n        {\n            \"top\",\n            \"organizationalUnit\",\n        },\n    });\n\n    var a123456 = new Ldap.Object(\"a123456\", new()\n    {\n        Attributes = new[]\n        {\n            \n            {\n                { \"sn\", \"Doe\" },\n            },\n            \n            {\n                { \"givenName\", \"John\" },\n            },\n            \n            {\n                { \"cn\", \"John Doe\" },\n            },\n            \n            {\n                { \"displayName\", \"Mr. John K. Doe, esq.\" },\n            },\n            \n            {\n                { \"mail\", \"john.doe@example.com\" },\n            },\n            \n            {\n                { \"mail\", \"jdoe@example.com\" },\n            },\n            \n            {\n                { \"userPassword\", \"password\" },\n            },\n            \n            {\n                { \"uidNumber\", \"1234\" },\n            },\n            \n            {\n                { \"gidNumber\", \"1234\" },\n            },\n            \n            {\n                { \"homeDirectory\", \"/home/jdoe\" },\n            },\n            \n            {\n                { \"loginShell\", \"/bin/bash\" },\n            },\n        },\n        Dn = usersExampleCom.Dn.Apply(dn => $\"uid=a123456,{dn}\"),\n        ObjectClasses = new[]\n        {\n            \"inetOrgPerson\",\n            \"posixAccount\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/ldap/v2/ldap\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tusersExampleCom, err := ldap.NewObject(ctx, \"usersExampleCom\", &ldap.ObjectArgs{\n\t\t\tDn: pulumi.String(\"ou=users,dc=example,dc=com\"),\n\t\t\tObjectClasses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"top\"),\n\t\t\t\tpulumi.String(\"organizationalUnit\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ldap.NewObject(ctx, \"a123456\", &ldap.ObjectArgs{\n\t\t\tAttributes: pulumi.StringMapArray{\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"sn\": pulumi.String(\"Doe\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"givenName\": pulumi.String(\"John\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"cn\": pulumi.String(\"John Doe\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"displayName\": pulumi.String(\"Mr. John K. Doe, esq.\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"mail\": pulumi.String(\"john.doe@example.com\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"mail\": pulumi.String(\"jdoe@example.com\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"userPassword\": pulumi.String(\"password\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"uidNumber\": pulumi.String(\"1234\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"gidNumber\": pulumi.String(\"1234\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"homeDirectory\": pulumi.String(\"/home/jdoe\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"loginShell\": pulumi.String(\"/bin/bash\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDn: usersExampleCom.Dn.ApplyT(func(dn string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"uid=a123456,%v\", dn), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tObjectClasses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"inetOrgPerson\"),\n\t\t\t\tpulumi.String(\"posixAccount\"),\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.ldap.Object;\nimport com.pulumi.ldap.ObjectArgs;\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 usersExampleCom = new Object(\"usersExampleCom\", ObjectArgs.builder()\n            .dn(\"ou=users,dc=example,dc=com\")\n            .objectClasses(            \n                \"top\",\n                \"organizationalUnit\")\n            .build());\n\n        var a123456 = new Object(\"a123456\", ObjectArgs.builder()\n            .attributes(            \n                Map.of(\"sn\", \"Doe\"),\n                Map.of(\"givenName\", \"John\"),\n                Map.of(\"cn\", \"John Doe\"),\n                Map.of(\"displayName\", \"Mr. John K. Doe, esq.\"),\n                Map.of(\"mail\", \"john.doe@example.com\"),\n                Map.of(\"mail\", \"jdoe@example.com\"),\n                Map.of(\"userPassword\", \"password\"),\n                Map.of(\"uidNumber\", \"1234\"),\n                Map.of(\"gidNumber\", \"1234\"),\n                Map.of(\"homeDirectory\", \"/home/jdoe\"),\n                Map.of(\"loginShell\", \"/bin/bash\"))\n            .dn(usersExampleCom.dn().applyValue(dn -> String.format(\"uid=a123456,%s\", dn)))\n            .objectClasses(            \n                \"inetOrgPerson\",\n                \"posixAccount\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  usersExampleCom:\n    type: ldap:Object\n    properties:\n      dn: ou=users,dc=example,dc=com\n      objectClasses:\n        - top\n        - organizationalUnit\n  a123456:\n    type: ldap:Object\n    properties:\n      attributes:\n        - sn: Doe\n        - givenName: John\n        - cn: John Doe\n        - displayName: Mr. John K. Doe, esq.\n        - mail: john.doe@example.com\n        - mail: jdoe@example.com\n        - userPassword: password\n        - uidNumber: '1234'\n        - gidNumber: '1234'\n        - homeDirectory: /home/jdoe\n        - loginShell: /bin/bash\n      dn: uid=a123456,${usersExampleCom.dn}\n      objectClasses:\n        - inetOrgPerson\n        - posixAccount\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n$ export TF_LDAP_IMPORTER_PATH=a123456.tf\n\n```sh\n$ pulumi import ldap:index/object:Object a123456 uid=a123456,ou=users,dc=example,dc=com\n```\n\n",
      "properties": {
        "attributes": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "The map of attributes of this object; each attribute can be multi-valued.\n"
        },
        "dn": {
          "type": "string",
          "description": "The Distinguished Name (DN) of the object, as the concatenation of its RDN (unique among siblings) and its parent's DN.\n"
        },
        "objectClasses": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The set of classes this object conforms to (e.g. organizationalUnit, inetOrgPerson).\n"
        },
        "objectId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        }
      },
      "type": "object",
      "required": [
        "dn",
        "objectClasses",
        "objectId"
      ],
      "inputProperties": {
        "attributes": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "The map of attributes of this object; each attribute can be multi-valued.\n"
        },
        "dn": {
          "type": "string",
          "description": "The Distinguished Name (DN) of the object, as the concatenation of its RDN (unique among siblings) and its parent's DN.\n"
        },
        "objectClasses": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The set of classes this object conforms to (e.g. organizationalUnit, inetOrgPerson).\n"
        },
        "objectId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        }
      },
      "requiredInputs": [
        "dn",
        "objectClasses"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Object resources.\n",
        "properties": {
          "attributes": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "description": "The map of attributes of this object; each attribute can be multi-valued.\n"
          },
          "dn": {
            "type": "string",
            "description": "The Distinguished Name (DN) of the object, as the concatenation of its RDN (unique among siblings) and its parent's DN.\n"
          },
          "objectClasses": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The set of classes this object conforms to (e.g. organizationalUnit, inetOrgPerson).\n"
          },
          "objectId": {
            "type": "string",
            "description": "The ID of this resource.\n"
          }
        },
        "type": "object"
      }
    }
  },
  "parameterization": {
    "baseProvider": {
      "name": "terraform-provider",
      "version": "0.10.0"
    },
    "parameter": "eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2VsYXN0aWMtaW5mcmEvbGRhcCIsInZlcnNpb24iOiIyLjAuMSJ9fQ=="
  }
}
