{
  "name": "mysql",
  "version": "3.2.10",
  "description": "A Pulumi package for creating and managing mysql cloud resources.",
  "keywords": [
    "pulumi",
    "mysql"
  ],
  "homepage": "https://pulumi.io",
  "license": "Apache-2.0",
  "attribution": "This Pulumi package is based on the [`mysql` Terraform Provider](https://github.com/terraform-providers/terraform-provider-mysql).",
  "repository": "https://github.com/pulumi/pulumi-mysql",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "packageReferences": {
        "Pulumi": "3.*-*"
      },
      "namespaces": {
        "mysql": "MySql"
      },
      "compatibility": "tfbridge20",
      "respectSchemaVersion": true
    },
    "go": {
      "importBasePath": "github.com/pulumi/pulumi-mysql/sdk/v3/go/mysql",
      "generateResourceContainerTypes": true,
      "generateExtraInputTypes": true,
      "respectSchemaVersion": true
    },
    "nodejs": {
      "packageDescription": "A Pulumi package for creating and managing mysql cloud resources.",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/terraform-providers/terraform-provider-mysql)\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-mysql` repo](https://github.com/pulumi/pulumi-mysql/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-mysql` repo](https://github.com/terraform-providers/terraform-provider-mysql/issues).",
      "dependencies": {
        "@pulumi/pulumi": "^3.0.0-alpha.0"
      },
      "devDependencies": {
        "@types/mime": "^2.0.0",
        "@types/node": "^10.0.0"
      },
      "compatibility": "tfbridge20",
      "disableUnionOutputTypes": true,
      "respectSchemaVersion": true
    },
    "python": {
      "requires": {
        "pulumi": ">=3.0.0a1,<4.0.0"
      },
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/terraform-providers/terraform-provider-mysql)\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-mysql` repo](https://github.com/pulumi/pulumi-mysql/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-mysql` repo](https://github.com/terraform-providers/terraform-provider-mysql/issues).",
      "compatibility": "tfbridge20",
      "respectSchemaVersion": true,
      "pyproject": {
        "enabled": true
      }
    }
  },
  "config": {
    "variables": {
      "authenticationPlugin": {
        "type": "string"
      },
      "endpoint": {
        "type": "string"
      },
      "maxConnLifetimeSec": {
        "type": "integer"
      },
      "maxOpenConns": {
        "type": "integer"
      },
      "password": {
        "type": "string"
      },
      "proxy": {
        "type": "string",
        "defaultInfo": {
          "environment": [
            "ALL_PROXY",
            "all_proxy"
          ]
        }
      },
      "tls": {
        "type": "string",
        "default": "false",
        "defaultInfo": {
          "environment": [
            "MYSQL_TLS_CONFIG"
          ]
        }
      },
      "username": {
        "type": "string"
      }
    },
    "defaults": [
      "endpoint",
      "username"
    ]
  },
  "provider": {
    "description": "The provider type for the mysql 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": {
      "authenticationPlugin": {
        "type": "string"
      },
      "endpoint": {
        "type": "string"
      },
      "password": {
        "type": "string"
      },
      "proxy": {
        "type": "string"
      },
      "tls": {
        "type": "string"
      },
      "username": {
        "type": "string"
      }
    },
    "type": "object",
    "required": [
      "endpoint",
      "username"
    ],
    "inputProperties": {
      "authenticationPlugin": {
        "type": "string"
      },
      "endpoint": {
        "type": "string"
      },
      "maxConnLifetimeSec": {
        "type": "integer"
      },
      "maxOpenConns": {
        "type": "integer"
      },
      "password": {
        "type": "string"
      },
      "proxy": {
        "type": "string",
        "defaultInfo": {
          "environment": [
            "ALL_PROXY",
            "all_proxy"
          ]
        }
      },
      "tls": {
        "type": "string",
        "default": "false",
        "defaultInfo": {
          "environment": [
            "MYSQL_TLS_CONFIG"
          ]
        }
      },
      "username": {
        "type": "string"
      }
    },
    "requiredInputs": [
      "endpoint",
      "username"
    ]
  },
  "resources": {
    "mysql:index/database:Database": {
      "description": "The ``mysql.Database`` resource creates and manages a database on a MySQL\nserver.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mysql from \"@pulumi/mysql\";\n\nconst app = new mysql.Database(\"app\", {name: \"my_awesome_app\"});\n```\n```python\nimport pulumi\nimport pulumi_mysql as mysql\n\napp = mysql.Database(\"app\", name=\"my_awesome_app\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing MySql = Pulumi.MySql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var app = new MySql.Database(\"app\", new()\n    {\n        Name = \"my_awesome_app\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mysql/sdk/v3/go/mysql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mysql.NewDatabase(ctx, \"app\", &mysql.DatabaseArgs{\n\t\t\tName: pulumi.String(\"my_awesome_app\"),\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.mysql.Database;\nimport com.pulumi.mysql.DatabaseArgs;\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 app = new Database(\"app\", DatabaseArgs.builder()\n            .name(\"my_awesome_app\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  app:\n    type: mysql:Database\n    properties:\n      name: my_awesome_app\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nDatabases can be imported using their name, e.g.\n\n```sh\n$ pulumi import mysql:index/database:Database example my-example-database\n```\n",
      "properties": {
        "defaultCharacterSet": {
          "type": "string",
          "description": "The default character set to use when\na table is created without specifying an explicit character set. Defaults\nto \"utf8\".\n"
        },
        "defaultCollation": {
          "type": "string",
          "description": "The default collation to use when a table\nis created without specifying an explicit collation. Defaults to\n``utf8_general_ci``. Each character set has its own set of collations, so\nchanging the character set requires also changing the collation.\n\nNote that the defaults for character set and collation above do not respect\nany defaults set on the MySQL server, so that the configuration can be set\nappropriately even though this provider cannot see the server-level defaults. If\nyou wish to use the server's defaults you must consult the server's\nconfiguration and then set the ``default_character_set`` and\n``default_collation`` to match.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the database. This must be unique within\na given MySQL server and may or may not be case-sensitive depending on\nthe operating system on which the MySQL server is running.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "inputProperties": {
        "defaultCharacterSet": {
          "type": "string",
          "description": "The default character set to use when\na table is created without specifying an explicit character set. Defaults\nto \"utf8\".\n"
        },
        "defaultCollation": {
          "type": "string",
          "description": "The default collation to use when a table\nis created without specifying an explicit collation. Defaults to\n``utf8_general_ci``. Each character set has its own set of collations, so\nchanging the character set requires also changing the collation.\n\nNote that the defaults for character set and collation above do not respect\nany defaults set on the MySQL server, so that the configuration can be set\nappropriately even though this provider cannot see the server-level defaults. If\nyou wish to use the server's defaults you must consult the server's\nconfiguration and then set the ``default_character_set`` and\n``default_collation`` to match.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the database. This must be unique within\na given MySQL server and may or may not be case-sensitive depending on\nthe operating system on which the MySQL server is running.\n",
          "willReplaceOnChanges": true
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Database resources.\n",
        "properties": {
          "defaultCharacterSet": {
            "type": "string",
            "description": "The default character set to use when\na table is created without specifying an explicit character set. Defaults\nto \"utf8\".\n"
          },
          "defaultCollation": {
            "type": "string",
            "description": "The default collation to use when a table\nis created without specifying an explicit collation. Defaults to\n``utf8_general_ci``. Each character set has its own set of collations, so\nchanging the character set requires also changing the collation.\n\nNote that the defaults for character set and collation above do not respect\nany defaults set on the MySQL server, so that the configuration can be set\nappropriately even though this provider cannot see the server-level defaults. If\nyou wish to use the server's defaults you must consult the server's\nconfiguration and then set the ``default_character_set`` and\n``default_collation`` to match.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the database. This must be unique within\na given MySQL server and may or may not be case-sensitive depending on\nthe operating system on which the MySQL server is running.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "mysql:index/grant:Grant": {
      "description": "The ``mysql.Grant`` resource creates and manages privileges given to\na user on a MySQL server.\n\n## Examples \n\n### Granting Privileges to a User\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mysql from \"@pulumi/mysql\";\n\nconst jdoe = new mysql.User(\"jdoe\", {\n    user: \"jdoe\",\n    host: \"example.com\",\n    plaintextPassword: \"password\",\n});\nconst jdoeGrant = new mysql.Grant(\"jdoe\", {\n    user: jdoe.user,\n    host: jdoe.host,\n    database: \"app\",\n    privileges: [\n        \"SELECT\",\n        \"UPDATE\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_mysql as mysql\n\njdoe = mysql.User(\"jdoe\",\n    user=\"jdoe\",\n    host=\"example.com\",\n    plaintext_password=\"password\")\njdoe_grant = mysql.Grant(\"jdoe\",\n    user=jdoe.user,\n    host=jdoe.host,\n    database=\"app\",\n    privileges=[\n        \"SELECT\",\n        \"UPDATE\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing MySql = Pulumi.MySql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var jdoe = new MySql.User(\"jdoe\", new()\n    {\n        UserName = \"jdoe\",\n        Host = \"example.com\",\n        PlaintextPassword = \"password\",\n    });\n\n    var jdoeGrant = new MySql.Grant(\"jdoe\", new()\n    {\n        User = jdoe.UserName,\n        Host = jdoe.Host,\n        Database = \"app\",\n        Privileges = new[]\n        {\n            \"SELECT\",\n            \"UPDATE\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mysql/sdk/v3/go/mysql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tjdoe, err := mysql.NewUser(ctx, \"jdoe\", &mysql.UserArgs{\n\t\t\tUser:              pulumi.String(\"jdoe\"),\n\t\t\tHost:              pulumi.String(\"example.com\"),\n\t\t\tPlaintextPassword: pulumi.String(\"password\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mysql.NewGrant(ctx, \"jdoe\", &mysql.GrantArgs{\n\t\t\tUser:     jdoe.User,\n\t\t\tHost:     jdoe.Host,\n\t\t\tDatabase: pulumi.String(\"app\"),\n\t\t\tPrivileges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t\tpulumi.String(\"UPDATE\"),\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.mysql.User;\nimport com.pulumi.mysql.UserArgs;\nimport com.pulumi.mysql.Grant;\nimport com.pulumi.mysql.GrantArgs;\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 jdoe = new User(\"jdoe\", UserArgs.builder()\n            .user(\"jdoe\")\n            .host(\"example.com\")\n            .plaintextPassword(\"password\")\n            .build());\n\n        var jdoeGrant = new Grant(\"jdoeGrant\", GrantArgs.builder()\n            .user(jdoe.user())\n            .host(jdoe.host())\n            .database(\"app\")\n            .privileges(            \n                \"SELECT\",\n                \"UPDATE\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  jdoe:\n    type: mysql:User\n    properties:\n      user: jdoe\n      host: example.com\n      plaintextPassword: password\n  jdoeGrant:\n    type: mysql:Grant\n    name: jdoe\n    properties:\n      user: ${jdoe.user}\n      host: ${jdoe.host}\n      database: app\n      privileges:\n        - SELECT\n        - UPDATE\n```\n<!--End PulumiCodeChooser -->\n\n### Granting Privileges to a Role\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mysql from \"@pulumi/mysql\";\n\nconst developer = new mysql.Role(\"developer\", {name: \"developer\"});\nconst developerGrant = new mysql.Grant(\"developer\", {\n    role: developer.name,\n    database: \"app\",\n    privileges: [\n        \"SELECT\",\n        \"UPDATE\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_mysql as mysql\n\ndeveloper = mysql.Role(\"developer\", name=\"developer\")\ndeveloper_grant = mysql.Grant(\"developer\",\n    role=developer.name,\n    database=\"app\",\n    privileges=[\n        \"SELECT\",\n        \"UPDATE\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing MySql = Pulumi.MySql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var developer = new MySql.Role(\"developer\", new()\n    {\n        Name = \"developer\",\n    });\n\n    var developerGrant = new MySql.Grant(\"developer\", new()\n    {\n        Role = developer.Name,\n        Database = \"app\",\n        Privileges = new[]\n        {\n            \"SELECT\",\n            \"UPDATE\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mysql/sdk/v3/go/mysql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdeveloper, err := mysql.NewRole(ctx, \"developer\", &mysql.RoleArgs{\n\t\t\tName: pulumi.String(\"developer\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mysql.NewGrant(ctx, \"developer\", &mysql.GrantArgs{\n\t\t\tRole:     developer.Name,\n\t\t\tDatabase: pulumi.String(\"app\"),\n\t\t\tPrivileges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t\tpulumi.String(\"UPDATE\"),\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.mysql.Role;\nimport com.pulumi.mysql.RoleArgs;\nimport com.pulumi.mysql.Grant;\nimport com.pulumi.mysql.GrantArgs;\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 developer = new Role(\"developer\", RoleArgs.builder()\n            .name(\"developer\")\n            .build());\n\n        var developerGrant = new Grant(\"developerGrant\", GrantArgs.builder()\n            .role(developer.name())\n            .database(\"app\")\n            .privileges(            \n                \"SELECT\",\n                \"UPDATE\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  developer:\n    type: mysql:Role\n    properties:\n      name: developer\n  developerGrant:\n    type: mysql:Grant\n    name: developer\n    properties:\n      role: ${developer.name}\n      database: app\n      privileges:\n        - SELECT\n        - UPDATE\n```\n<!--End PulumiCodeChooser -->\n\n### Adding a Role to a User\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mysql from \"@pulumi/mysql\";\n\nconst jdoe = new mysql.User(\"jdoe\", {\n    user: \"jdoe\",\n    host: \"example.com\",\n    plaintextPassword: \"password\",\n});\nconst developer = new mysql.Role(\"developer\", {name: \"developer\"});\nconst developerGrant = new mysql.Grant(\"developer\", {\n    user: jdoe.user,\n    host: jdoe.host,\n    database: \"app\",\n    roles: [developer.name],\n});\n```\n```python\nimport pulumi\nimport pulumi_mysql as mysql\n\njdoe = mysql.User(\"jdoe\",\n    user=\"jdoe\",\n    host=\"example.com\",\n    plaintext_password=\"password\")\ndeveloper = mysql.Role(\"developer\", name=\"developer\")\ndeveloper_grant = mysql.Grant(\"developer\",\n    user=jdoe.user,\n    host=jdoe.host,\n    database=\"app\",\n    roles=[developer.name])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing MySql = Pulumi.MySql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var jdoe = new MySql.User(\"jdoe\", new()\n    {\n        UserName = \"jdoe\",\n        Host = \"example.com\",\n        PlaintextPassword = \"password\",\n    });\n\n    var developer = new MySql.Role(\"developer\", new()\n    {\n        Name = \"developer\",\n    });\n\n    var developerGrant = new MySql.Grant(\"developer\", new()\n    {\n        User = jdoe.UserName,\n        Host = jdoe.Host,\n        Database = \"app\",\n        Roles = new[]\n        {\n            developer.Name,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mysql/sdk/v3/go/mysql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tjdoe, err := mysql.NewUser(ctx, \"jdoe\", &mysql.UserArgs{\n\t\t\tUser:              pulumi.String(\"jdoe\"),\n\t\t\tHost:              pulumi.String(\"example.com\"),\n\t\t\tPlaintextPassword: pulumi.String(\"password\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdeveloper, err := mysql.NewRole(ctx, \"developer\", &mysql.RoleArgs{\n\t\t\tName: pulumi.String(\"developer\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mysql.NewGrant(ctx, \"developer\", &mysql.GrantArgs{\n\t\t\tUser:     jdoe.User,\n\t\t\tHost:     jdoe.Host,\n\t\t\tDatabase: pulumi.String(\"app\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tdeveloper.Name,\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.mysql.User;\nimport com.pulumi.mysql.UserArgs;\nimport com.pulumi.mysql.Role;\nimport com.pulumi.mysql.RoleArgs;\nimport com.pulumi.mysql.Grant;\nimport com.pulumi.mysql.GrantArgs;\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 jdoe = new User(\"jdoe\", UserArgs.builder()\n            .user(\"jdoe\")\n            .host(\"example.com\")\n            .plaintextPassword(\"password\")\n            .build());\n\n        var developer = new Role(\"developer\", RoleArgs.builder()\n            .name(\"developer\")\n            .build());\n\n        var developerGrant = new Grant(\"developerGrant\", GrantArgs.builder()\n            .user(jdoe.user())\n            .host(jdoe.host())\n            .database(\"app\")\n            .roles(developer.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  jdoe:\n    type: mysql:User\n    properties:\n      user: jdoe\n      host: example.com\n      plaintextPassword: password\n  developer:\n    type: mysql:Role\n    properties:\n      name: developer\n  developerGrant:\n    type: mysql:Grant\n    name: developer\n    properties:\n      user: ${jdoe.user}\n      host: ${jdoe.host}\n      database: app\n      roles:\n        - ${developer.name}\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "database": {
          "type": "string",
          "description": "The database to grant privileges on.\n"
        },
        "grant": {
          "type": "boolean",
          "description": "Whether to also give the user privileges to grant the same privileges to other users.\n",
          "language": {
            "csharp": {
              "name": "GrantName"
            }
          }
        },
        "host": {
          "type": "string",
          "description": "The source host of the user. Defaults to \"localhost\". Conflicts with `role`.\n"
        },
        "privileges": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of privileges to grant to the user. Refer to a list of privileges (such as [here](https://dev.mysql.com/doc/refman/5.5/en/grant.html)) for applicable privileges. Conflicts with `roles`.\n"
        },
        "role": {
          "type": "string",
          "description": "The role to grant `privileges` to. Conflicts with `user` and `host`.\n"
        },
        "roles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of rols to grant to the user. Conflicts with `privileges`.\n"
        },
        "table": {
          "type": "string",
          "description": "Which table to grant `privileges` on. Defaults to `*`, which is all tables.\n"
        },
        "tlsOption": {
          "type": "string",
          "description": "An TLS-Option for the `GRANT` statement. The value is suffixed to `REQUIRE`. A value of 'SSL' will generate a `GRANT ... REQUIRE SSL` statement. See the [MYSQL `GRANT` documentation](https://dev.mysql.com/doc/refman/5.7/en/grant.html) for more. Ignored if MySQL version is under 5.7.0.\n"
        },
        "user": {
          "type": "string",
          "description": "The name of the user. Conflicts with `role`.\n"
        }
      },
      "type": "object",
      "required": [
        "database"
      ],
      "inputProperties": {
        "database": {
          "type": "string",
          "description": "The database to grant privileges on.\n",
          "willReplaceOnChanges": true
        },
        "grant": {
          "type": "boolean",
          "description": "Whether to also give the user privileges to grant the same privileges to other users.\n",
          "language": {
            "csharp": {
              "name": "GrantName"
            }
          },
          "willReplaceOnChanges": true
        },
        "host": {
          "type": "string",
          "description": "The source host of the user. Defaults to \"localhost\". Conflicts with `role`.\n",
          "willReplaceOnChanges": true
        },
        "privileges": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of privileges to grant to the user. Refer to a list of privileges (such as [here](https://dev.mysql.com/doc/refman/5.5/en/grant.html)) for applicable privileges. Conflicts with `roles`.\n",
          "willReplaceOnChanges": true
        },
        "role": {
          "type": "string",
          "description": "The role to grant `privileges` to. Conflicts with `user` and `host`.\n",
          "willReplaceOnChanges": true
        },
        "roles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of rols to grant to the user. Conflicts with `privileges`.\n",
          "willReplaceOnChanges": true
        },
        "table": {
          "type": "string",
          "description": "Which table to grant `privileges` on. Defaults to `*`, which is all tables.\n",
          "willReplaceOnChanges": true
        },
        "tlsOption": {
          "type": "string",
          "description": "An TLS-Option for the `GRANT` statement. The value is suffixed to `REQUIRE`. A value of 'SSL' will generate a `GRANT ... REQUIRE SSL` statement. See the [MYSQL `GRANT` documentation](https://dev.mysql.com/doc/refman/5.7/en/grant.html) for more. Ignored if MySQL version is under 5.7.0.\n",
          "willReplaceOnChanges": true
        },
        "user": {
          "type": "string",
          "description": "The name of the user. Conflicts with `role`.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "database"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Grant resources.\n",
        "properties": {
          "database": {
            "type": "string",
            "description": "The database to grant privileges on.\n",
            "willReplaceOnChanges": true
          },
          "grant": {
            "type": "boolean",
            "description": "Whether to also give the user privileges to grant the same privileges to other users.\n",
            "language": {
              "csharp": {
                "name": "GrantName"
              }
            },
            "willReplaceOnChanges": true
          },
          "host": {
            "type": "string",
            "description": "The source host of the user. Defaults to \"localhost\". Conflicts with `role`.\n",
            "willReplaceOnChanges": true
          },
          "privileges": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of privileges to grant to the user. Refer to a list of privileges (such as [here](https://dev.mysql.com/doc/refman/5.5/en/grant.html)) for applicable privileges. Conflicts with `roles`.\n",
            "willReplaceOnChanges": true
          },
          "role": {
            "type": "string",
            "description": "The role to grant `privileges` to. Conflicts with `user` and `host`.\n",
            "willReplaceOnChanges": true
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of rols to grant to the user. Conflicts with `privileges`.\n",
            "willReplaceOnChanges": true
          },
          "table": {
            "type": "string",
            "description": "Which table to grant `privileges` on. Defaults to `*`, which is all tables.\n",
            "willReplaceOnChanges": true
          },
          "tlsOption": {
            "type": "string",
            "description": "An TLS-Option for the `GRANT` statement. The value is suffixed to `REQUIRE`. A value of 'SSL' will generate a `GRANT ... REQUIRE SSL` statement. See the [MYSQL `GRANT` documentation](https://dev.mysql.com/doc/refman/5.7/en/grant.html) for more. Ignored if MySQL version is under 5.7.0.\n",
            "willReplaceOnChanges": true
          },
          "user": {
            "type": "string",
            "description": "The name of the user. Conflicts with `role`.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "mysql:index/role:Role": {
      "description": "The ``mysql.Role`` resource creates and manages a user on a MySQL\nserver.\n\n> **Note:** MySQL introduced roles in version 8. They do not work on MySQL 5 and lower.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mysql from \"@pulumi/mysql\";\n\nconst developer = new mysql.Role(\"developer\", {name: \"developer\"});\n```\n```python\nimport pulumi\nimport pulumi_mysql as mysql\n\ndeveloper = mysql.Role(\"developer\", name=\"developer\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing MySql = Pulumi.MySql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var developer = new MySql.Role(\"developer\", new()\n    {\n        Name = \"developer\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mysql/sdk/v3/go/mysql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mysql.NewRole(ctx, \"developer\", &mysql.RoleArgs{\n\t\t\tName: pulumi.String(\"developer\"),\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.mysql.Role;\nimport com.pulumi.mysql.RoleArgs;\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 developer = new Role(\"developer\", RoleArgs.builder()\n            .name(\"developer\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  developer:\n    type: mysql:Role\n    properties:\n      name: developer\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the role.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "The name of the role.\n",
          "willReplaceOnChanges": true
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Role resources.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the role.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "mysql:index/user:User": {
      "description": "The ``mysql.User`` resource creates and manages a user on a MySQL\nserver.\n\n## Examples\n\n### Basic Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mysql from \"@pulumi/mysql\";\n\nconst jdoe = new mysql.User(\"jdoe\", {\n    user: \"jdoe\",\n    host: \"example.com\",\n    plaintextPassword: \"password\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mysql as mysql\n\njdoe = mysql.User(\"jdoe\",\n    user=\"jdoe\",\n    host=\"example.com\",\n    plaintext_password=\"password\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing MySql = Pulumi.MySql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var jdoe = new MySql.User(\"jdoe\", new()\n    {\n        UserName = \"jdoe\",\n        Host = \"example.com\",\n        PlaintextPassword = \"password\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mysql/sdk/v3/go/mysql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mysql.NewUser(ctx, \"jdoe\", &mysql.UserArgs{\n\t\t\tUser:              pulumi.String(\"jdoe\"),\n\t\t\tHost:              pulumi.String(\"example.com\"),\n\t\t\tPlaintextPassword: pulumi.String(\"password\"),\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.mysql.User;\nimport com.pulumi.mysql.UserArgs;\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 jdoe = new User(\"jdoe\", UserArgs.builder()\n            .user(\"jdoe\")\n            .host(\"example.com\")\n            .plaintextPassword(\"password\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  jdoe:\n    type: mysql:User\n    properties:\n      user: jdoe\n      host: example.com\n      plaintextPassword: password\n```\n<!--End PulumiCodeChooser -->\n\n### Example Usage with an Authentication Plugin\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mysql from \"@pulumi/mysql\";\n\nconst nologin = new mysql.User(\"nologin\", {\n    user: \"nologin\",\n    host: \"example.com\",\n    authPlugin: \"mysql_no_login\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mysql as mysql\n\nnologin = mysql.User(\"nologin\",\n    user=\"nologin\",\n    host=\"example.com\",\n    auth_plugin=\"mysql_no_login\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing MySql = Pulumi.MySql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var nologin = new MySql.User(\"nologin\", new()\n    {\n        UserName = \"nologin\",\n        Host = \"example.com\",\n        AuthPlugin = \"mysql_no_login\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mysql/sdk/v3/go/mysql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mysql.NewUser(ctx, \"nologin\", &mysql.UserArgs{\n\t\t\tUser:       pulumi.String(\"nologin\"),\n\t\t\tHost:       pulumi.String(\"example.com\"),\n\t\t\tAuthPlugin: pulumi.String(\"mysql_no_login\"),\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.mysql.User;\nimport com.pulumi.mysql.UserArgs;\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 nologin = new User(\"nologin\", UserArgs.builder()\n            .user(\"nologin\")\n            .host(\"example.com\")\n            .authPlugin(\"mysql_no_login\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  nologin:\n    type: mysql:User\n    properties:\n      user: nologin\n      host: example.com\n      authPlugin: mysql_no_login\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "authPlugin": {
          "type": "string",
          "description": "Use an [authentication plugin][ref-auth-plugins] to authenticate the user instead of using password authentication.  Description of the fields allowed in the block below. Conflicts with `password` and `plaintext_password`.\n"
        },
        "host": {
          "type": "string",
          "description": "The source host of the user. Defaults to \"localhost\".\n"
        },
        "password": {
          "type": "string",
          "description": "Deprecated alias of `plaintext_password`, whose value is *stored as plaintext in state*. Prefer to use `plaintext_password` instead, which stores the password as an unsalted hash. Conflicts with `auth_plugin`.\n",
          "deprecationMessage": "Please use plaintext_password instead",
          "secret": true
        },
        "plaintextPassword": {
          "type": "string",
          "description": "The password for the user. This must be provided in plain text, so the data source for it must be secured. An _unsalted_ hash of the provided password is stored in state. Conflicts with `auth_plugin`.\n",
          "secret": true
        },
        "tlsOption": {
          "type": "string",
          "description": "An TLS-Option for the `CREATE USER` or `ALTER USER` statement. The value is suffixed to `REQUIRE`. A value of 'SSL' will generate a `CREATE USER ... REQUIRE SSL` statement. See the [MYSQL `CREATE USER` documentation](https://dev.mysql.com/doc/refman/5.7/en/create-user.html) for more. Ignored if MySQL version is under 5.7.0.\n\n[ref-auth-plugins]: https://dev.mysql.com/doc/refman/5.7/en/authentication-plugins.html\n"
        },
        "user": {
          "type": "string",
          "description": "The name of the user.\n",
          "language": {
            "csharp": {
              "name": "UserName"
            }
          }
        }
      },
      "type": "object",
      "required": [
        "user"
      ],
      "inputProperties": {
        "authPlugin": {
          "type": "string",
          "description": "Use an [authentication plugin][ref-auth-plugins] to authenticate the user instead of using password authentication.  Description of the fields allowed in the block below. Conflicts with `password` and `plaintext_password`.\n",
          "willReplaceOnChanges": true
        },
        "host": {
          "type": "string",
          "description": "The source host of the user. Defaults to \"localhost\".\n",
          "willReplaceOnChanges": true
        },
        "password": {
          "type": "string",
          "description": "Deprecated alias of `plaintext_password`, whose value is *stored as plaintext in state*. Prefer to use `plaintext_password` instead, which stores the password as an unsalted hash. Conflicts with `auth_plugin`.\n",
          "deprecationMessage": "Please use plaintext_password instead",
          "secret": true
        },
        "plaintextPassword": {
          "type": "string",
          "description": "The password for the user. This must be provided in plain text, so the data source for it must be secured. An _unsalted_ hash of the provided password is stored in state. Conflicts with `auth_plugin`.\n",
          "secret": true
        },
        "tlsOption": {
          "type": "string",
          "description": "An TLS-Option for the `CREATE USER` or `ALTER USER` statement. The value is suffixed to `REQUIRE`. A value of 'SSL' will generate a `CREATE USER ... REQUIRE SSL` statement. See the [MYSQL `CREATE USER` documentation](https://dev.mysql.com/doc/refman/5.7/en/create-user.html) for more. Ignored if MySQL version is under 5.7.0.\n\n[ref-auth-plugins]: https://dev.mysql.com/doc/refman/5.7/en/authentication-plugins.html\n",
          "willReplaceOnChanges": true
        },
        "user": {
          "type": "string",
          "description": "The name of the user.\n",
          "language": {
            "csharp": {
              "name": "UserName"
            }
          },
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "user"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering User resources.\n",
        "properties": {
          "authPlugin": {
            "type": "string",
            "description": "Use an [authentication plugin][ref-auth-plugins] to authenticate the user instead of using password authentication.  Description of the fields allowed in the block below. Conflicts with `password` and `plaintext_password`.\n",
            "willReplaceOnChanges": true
          },
          "host": {
            "type": "string",
            "description": "The source host of the user. Defaults to \"localhost\".\n",
            "willReplaceOnChanges": true
          },
          "password": {
            "type": "string",
            "description": "Deprecated alias of `plaintext_password`, whose value is *stored as plaintext in state*. Prefer to use `plaintext_password` instead, which stores the password as an unsalted hash. Conflicts with `auth_plugin`.\n",
            "deprecationMessage": "Please use plaintext_password instead",
            "secret": true
          },
          "plaintextPassword": {
            "type": "string",
            "description": "The password for the user. This must be provided in plain text, so the data source for it must be secured. An _unsalted_ hash of the provided password is stored in state. Conflicts with `auth_plugin`.\n",
            "secret": true
          },
          "tlsOption": {
            "type": "string",
            "description": "An TLS-Option for the `CREATE USER` or `ALTER USER` statement. The value is suffixed to `REQUIRE`. A value of 'SSL' will generate a `CREATE USER ... REQUIRE SSL` statement. See the [MYSQL `CREATE USER` documentation](https://dev.mysql.com/doc/refman/5.7/en/create-user.html) for more. Ignored if MySQL version is under 5.7.0.\n\n[ref-auth-plugins]: https://dev.mysql.com/doc/refman/5.7/en/authentication-plugins.html\n",
            "willReplaceOnChanges": true
          },
          "user": {
            "type": "string",
            "description": "The name of the user.\n",
            "language": {
              "csharp": {
                "name": "UserName"
              }
            },
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    },
    "mysql:index/userPassword:UserPassword": {
      "description": "The `mysql.UserPassword` resource sets and manages a password for a given \nuser on a MySQL server.\n\n> **NOTE on MySQL Passwords:** This resource conflicts with the `password` \n   argument for `mysql.User`. This resource uses PGP encryption to avoid \n   storing unencrypted passwords in the provider state.\n   \n> **NOTE on How Passwords are Created:** This resource **automatically**\n   generates a **random** password. The password will be a random UUID.\n\n## Example Usage\n\n <!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mysql from \"@pulumi/mysql\";\n\nconst jdoe = new mysql.User(\"jdoe\", {user: \"jdoe\"});\nconst jdoeUserPassword = new mysql.UserPassword(\"jdoe\", {\n    user: jdoe.user,\n    pgpKey: \"keybase:joestump\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mysql as mysql\n\njdoe = mysql.User(\"jdoe\", user=\"jdoe\")\njdoe_user_password = mysql.UserPassword(\"jdoe\",\n    user=jdoe.user,\n    pgp_key=\"keybase:joestump\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing MySql = Pulumi.MySql;\n\nreturn await Deployment.RunAsync(() => \n{\n    var jdoe = new MySql.User(\"jdoe\", new()\n    {\n        UserName = \"jdoe\",\n    });\n\n    var jdoeUserPassword = new MySql.UserPassword(\"jdoe\", new()\n    {\n        User = jdoe.UserName,\n        PgpKey = \"keybase:joestump\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mysql/sdk/v3/go/mysql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tjdoe, err := mysql.NewUser(ctx, \"jdoe\", &mysql.UserArgs{\n\t\t\tUser: pulumi.String(\"jdoe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mysql.NewUserPassword(ctx, \"jdoe\", &mysql.UserPasswordArgs{\n\t\t\tUser:   jdoe.User,\n\t\t\tPgpKey: pulumi.String(\"keybase:joestump\"),\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.mysql.User;\nimport com.pulumi.mysql.UserArgs;\nimport com.pulumi.mysql.UserPassword;\nimport com.pulumi.mysql.UserPasswordArgs;\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 jdoe = new User(\"jdoe\", UserArgs.builder()\n            .user(\"jdoe\")\n            .build());\n\n        var jdoeUserPassword = new UserPassword(\"jdoeUserPassword\", UserPasswordArgs.builder()\n            .user(jdoe.user())\n            .pgpKey(\"keybase:joestump\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  jdoe:\n    type: mysql:User\n    properties:\n      user: jdoe\n  jdoeUserPassword:\n    type: mysql:UserPassword\n    name: jdoe\n    properties:\n      user: ${jdoe.user}\n      pgpKey: keybase:joestump\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "encryptedPassword": {
          "type": "string",
          "description": "The encrypted password, base64 encoded.\n"
        },
        "host": {
          "type": "string",
          "description": "The source host of the user. Defaults to `localhost`.\n"
        },
        "keyFingerprint": {
          "type": "string",
          "description": "The fingerprint of the PGP key used to encrypt the password\n"
        },
        "pgpKey": {
          "type": "string",
          "description": "Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:some_person_that_exists`.\n"
        },
        "user": {
          "type": "string",
          "description": "The IAM user to associate with this access key.\n"
        }
      },
      "type": "object",
      "required": [
        "encryptedPassword",
        "keyFingerprint",
        "pgpKey",
        "user"
      ],
      "inputProperties": {
        "host": {
          "type": "string",
          "description": "The source host of the user. Defaults to `localhost`.\n",
          "willReplaceOnChanges": true
        },
        "pgpKey": {
          "type": "string",
          "description": "Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:some_person_that_exists`.\n",
          "willReplaceOnChanges": true
        },
        "user": {
          "type": "string",
          "description": "The IAM user to associate with this access key.\n",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "pgpKey",
        "user"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering UserPassword resources.\n",
        "properties": {
          "encryptedPassword": {
            "type": "string",
            "description": "The encrypted password, base64 encoded.\n"
          },
          "host": {
            "type": "string",
            "description": "The source host of the user. Defaults to `localhost`.\n",
            "willReplaceOnChanges": true
          },
          "keyFingerprint": {
            "type": "string",
            "description": "The fingerprint of the PGP key used to encrypt the password\n"
          },
          "pgpKey": {
            "type": "string",
            "description": "Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:some_person_that_exists`.\n",
            "willReplaceOnChanges": true
          },
          "user": {
            "type": "string",
            "description": "The IAM user to associate with this access key.\n",
            "willReplaceOnChanges": true
          }
        },
        "type": "object"
      }
    }
  }
}
