{"name":"restapi","version":"3.0.0-rc2","description":"A Pulumi provider dynamically bridged from restapi.","attribution":"This Pulumi package is based on the [`restapi` Terraform Provider](https://github.com/mastercard/terraform-provider-restapi).","repository":"https://github.com/mastercard/terraform-provider-restapi","publisher":"mastercard","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"compatibility":"tfbridge20","liftSingleValueMethodReturns":true,"respectSchemaVersion":true},"go":{"generateExtraInputTypes":true,"importBasePath":"github.com/pulumi/pulumi-terraform-provider/sdks/go/restapi/v3/restapi","liftSingleValueMethodReturns":true,"respectSchemaVersion":true,"rootPackageName":"restapi"},"java":{"basePackage":"","buildFiles":"","gradleNexusPublishPluginVersion":"","gradleTest":""},"nodejs":{"compatibility":"tfbridge20","disableUnionOutputTypes":true,"liftSingleValueMethodReturns":true,"packageDescription":"A Pulumi provider dynamically bridged from restapi.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/mastercard/terraform-provider-restapi)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e please consult the source [`terraform-provider-restapi` repo](https://github.com/mastercard/terraform-provider-restapi/issues).","respectSchemaVersion":true},"python":{"compatibility":"tfbridge20","pyproject":{"enabled":true},"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/mastercard/terraform-provider-restapi)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e please consult the source [`terraform-provider-restapi` repo](https://github.com/mastercard/terraform-provider-restapi/issues).","respectSchemaVersion":true}},"config":{"variables":{"bearerToken":{"type":"string","description":"Token to use for Authorization: Bearer \u003ctoken\u003e","secret":true},"certFile":{"type":"string","description":"When set with the\u003cspan pulumi-lang-nodejs=\" keyFile \" pulumi-lang-dotnet=\" KeyFile \" pulumi-lang-go=\" keyFile \" pulumi-lang-python=\" key_file \" pulumi-lang-yaml=\" keyFile \" pulumi-lang-java=\" keyFile \"\u003e key_file \u003c/span\u003eparameter, the provider will load a client certificate as a file for mTLS authentication."},"certString":{"type":"string","description":"When set with the\u003cspan pulumi-lang-nodejs=\" keyString \" pulumi-lang-dotnet=\" KeyString \" pulumi-lang-go=\" keyString \" pulumi-lang-python=\" key_string \" pulumi-lang-yaml=\" keyString \" pulumi-lang-java=\" keyString \"\u003e key_string \u003c/span\u003eparameter, the provider will load a client certificate as a string for mTLS authentication."},"copyKeys":{"type":"array","items":{"type":"string"},"description":"When set, any PUT to the API for an object will copy these keys from the data the provider has gathered about the object. This is useful if internal API information must also be provided with updates, such as the revision of the object."},"createMethod":{"type":"string","description":"Defaults to `POST`. The HTTP method used to CREATE objects of this type on the API server."},"createReturnsObject":{"type":"boolean","description":"Set this when the API returns the object created only on creation operations (POST). This is used by the provider to refresh internal data structures."},"debug":{"type":"boolean"},"destroyMethod":{"type":"string","description":"Defaults to `DELETE`. The HTTP method used to DELETE objects of this type on the API server."},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of header names and values to set on all outbound requests. This is useful if you want to use a script via the 'external' provider or provide a pre-approved token or change Content-Type from `application/json`. If \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e are set and Authorization is one of the headers defined here, the BASIC auth credentials are discarded."},"idAttribute":{"type":"string","description":"When set, this key will be used to operate on REST objects. For example, if the ID is set to 'name', changes to the API object will be to http://foo.com/bar/VALUE_OF_NAME. This value may also be a '/'-delimeted path to the id attribute if it is multple levels deep in the data (such as `attributes/id` in the case of an object `{ \"attributes\": { \"id\": 1234 }, \"config\": { \"name\": \"foo\", \"something\": \"bar\"}}`"},"insecure":{"type":"boolean","description":"When using https, this disables TLS verification of the host."},"keyFile":{"type":"string","description":"When set with the\u003cspan pulumi-lang-nodejs=\" certFile \" pulumi-lang-dotnet=\" CertFile \" pulumi-lang-go=\" certFile \" pulumi-lang-python=\" cert_file \" pulumi-lang-yaml=\" certFile \" pulumi-lang-java=\" certFile \"\u003e cert_file \u003c/span\u003eparameter, the provider will load a client certificate as a file for mTLS authentication. Note that this mechanism simply delegates to golang's tls.LoadX509KeyPair which does not support passphrase protected private keys. The most robust security protections available to the\u003cspan pulumi-lang-nodejs=\" keyFile \" pulumi-lang-dotnet=\" KeyFile \" pulumi-lang-go=\" keyFile \" pulumi-lang-python=\" key_file \" pulumi-lang-yaml=\" keyFile \" pulumi-lang-java=\" keyFile \"\u003e key_file \u003c/span\u003eare simple file system permissions."},"keyString":{"type":"string","description":"When set with the\u003cspan pulumi-lang-nodejs=\" certString \" pulumi-lang-dotnet=\" CertString \" pulumi-lang-go=\" certString \" pulumi-lang-python=\" cert_string \" pulumi-lang-yaml=\" certString \" pulumi-lang-java=\" certString \"\u003e cert_string \u003c/span\u003eparameter, the provider will load a client certificate as a string for mTLS authentication. Note that this mechanism simply delegates to golang's tls.LoadX509KeyPair which does not support passphrase protected private keys. The most robust security protections available to the\u003cspan pulumi-lang-nodejs=\" keyFile \" pulumi-lang-dotnet=\" KeyFile \" pulumi-lang-go=\" keyFile \" pulumi-lang-python=\" key_file \" pulumi-lang-yaml=\" keyFile \" pulumi-lang-java=\" keyFile \"\u003e key_file \u003c/span\u003eare simple file system permissions."},"oauthClientCredentials":{"$ref":"#/types/restapi:config%2FoauthClientCredentials:oauthClientCredentials","description":"Configuration for oauth client credential flow using the https://pkg.go.dev/golang.org/x/oauth2 implementation"},"password":{"type":"string","description":"When set, will use this password for BASIC auth to the API.","secret":true},"rateLimit":{"type":"number","description":"Set this to limit the number of requests per second made to the API. Must be a positive number."},"readMethod":{"type":"string","description":"Defaults to `GET`. The HTTP method used to READ objects of this type on the API server."},"retries":{"$ref":"#/types/restapi:config%2Fretries:retries","description":"Configuration for automatic retry (connection/TLS/etc errors or a 500-range response except 501) of failed HTTP requests"},"rootCaFile":{"type":"string","description":"When set, the provider will load a root CA certificate as a file for mTLS authentication. This is useful when the API server is using a self-signed certificate and the client needs to trust it."},"rootCaString":{"type":"string","description":"When set, the provider will load a root CA certificate as a string for mTLS authentication. This is useful when the API server is using a self-signed certificate and the client needs to trust it."},"testPath":{"type":"string","description":"If set, the provider will issue a\u003cspan pulumi-lang-nodejs=\" readMethod \" pulumi-lang-dotnet=\" ReadMethod \" pulumi-lang-go=\" readMethod \" pulumi-lang-python=\" read_method \" pulumi-lang-yaml=\" readMethod \" pulumi-lang-java=\" readMethod \"\u003e read_method \u003c/span\u003erequest to this path after instantiation requiring a 200 OK response before proceeding. This is useful if your API provides a no-op endpoint that can signal if this provider is configured correctly. Response data will be ignored."},"timeout":{"type":"number","description":"When set, will cause requests taking longer than this time (in seconds) to be aborted. Must be a positive integer."},"updateMethod":{"type":"string","description":"Defaults to `PUT`. The HTTP method used to UPDATE objects of this type on the API server."},"uri":{"type":"string","description":"URI of the REST API endpoint. This serves as the base of all requests."},"useCookies":{"type":"boolean","description":"Enable cookie jar to persist session."},"username":{"type":"string","description":"When set, will use this username for BASIC auth to the API."},"writeReturnsObject":{"type":"boolean","description":"Set this when the API returns the object created on all write operations (POST, PUT). This is used by the provider to refresh internal data structures."},"xssiPrefix":{"type":"string","description":"Trim the xssi prefix from response string, if present, before parsing."}}},"types":{"restapi:config/oauthClientCredentials:oauthClientCredentials":{"properties":{"endpointParams":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional key/values to pass to the underlying Oauth client library (as EndpointParams)\n"},"oauthClientId":{"type":"string","description":"client id\n"},"oauthClientSecret":{"type":"string","description":"client secret\n"},"oauthScopes":{"type":"array","items":{"type":"string"},"description":"scopes\n"},"oauthTokenEndpoint":{"type":"string","description":"oauth token endpoint\n"}},"type":"object"},"restapi:config/retries:retries":{"properties":{"maxRetries":{"type":"number","description":"Maximum number of retries for failed requests. Defaults to 0.\n"},"maxWait":{"type":"number","description":"Maximum wait time in seconds between retries. Defaults to 30.\n"},"minWait":{"type":"number","description":"Minimum wait time in seconds between retries. Defaults to 1.\n"}},"type":"object"},"restapi:index/ObjectReadSearch:ObjectReadSearch":{"properties":{"queryString":{"type":"string","description":"An optional query string to send when performing the search.\n"},"resultsKey":{"type":"string","description":"When issuing a GET to the path, this JSON key is used to locate the results array. The format is 'field/field/field'. Example: 'results/values'. If omitted, it is assumed the results coming back are already an array and are to be used exactly as-is.\n"},"searchData":{"type":"string","description":"Valid JSON object to pass to search request as body\n"},"searchKey":{"type":"string","description":"When reading search results from the API, this key is used to identify the specific record to read. This should be a unique record such as 'name'. Similar to results_key, the value may be in the format of 'field/field/field' to search for data deeper in the returned object.\n"},"searchPatch":{"type":"string","description":"A JSON Patch (RFC 6902) to apply to the search result before storing in state. This allows transformation of the API response to match the expected data structure. Example: [{\"op\":\"move\",\"from\":\"/old\",\"path\":\"/new\"}]\n"},"searchValue":{"type":"string","description":"The value of 'search*key' will be compared to this value to determine if the correct object was found. Example: if 'search*key' is 'name' and 'search_value' is 'foo', the record in the array returned by the API with name=foo will be used. Supports interpolation of {id} placeholder with the object's ID.\n"}},"type":"object","required":["searchKey","searchValue"]},"restapi:index/ProviderOauthClientCredentials:ProviderOauthClientCredentials":{"properties":{"endpointParams":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional key/values to pass to the underlying Oauth client library (as EndpointParams)\n"},"oauthClientId":{"type":"string","description":"client id\n"},"oauthClientSecret":{"type":"string","description":"client secret\n"},"oauthScopes":{"type":"array","items":{"type":"string"},"description":"scopes\n"},"oauthTokenEndpoint":{"type":"string","description":"oauth token endpoint\n"}},"type":"object"},"restapi:index/ProviderRetries:ProviderRetries":{"properties":{"maxRetries":{"type":"number","description":"Maximum number of retries for failed requests. Defaults to 0.\n"},"maxWait":{"type":"number","description":"Maximum wait time in seconds between retries. Defaults to 30.\n"},"minWait":{"type":"number","description":"Minimum wait time in seconds between retries. Defaults to 1.\n"}},"type":"object"}},"provider":{"description":"The provider type for the restapi 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":{"bearerToken":{"type":"string","description":"Token to use for Authorization: Bearer \u003ctoken\u003e","secret":true},"certFile":{"type":"string","description":"When set with the\u003cspan pulumi-lang-nodejs=\" keyFile \" pulumi-lang-dotnet=\" KeyFile \" pulumi-lang-go=\" keyFile \" pulumi-lang-python=\" key_file \" pulumi-lang-yaml=\" keyFile \" pulumi-lang-java=\" keyFile \"\u003e key_file \u003c/span\u003eparameter, the provider will load a client certificate as a file for mTLS authentication."},"certString":{"type":"string","description":"When set with the\u003cspan pulumi-lang-nodejs=\" keyString \" pulumi-lang-dotnet=\" KeyString \" pulumi-lang-go=\" keyString \" pulumi-lang-python=\" key_string \" pulumi-lang-yaml=\" keyString \" pulumi-lang-java=\" keyString \"\u003e key_string \u003c/span\u003eparameter, the provider will load a client certificate as a string for mTLS authentication."},"createMethod":{"type":"string","description":"Defaults to `POST`. The HTTP method used to CREATE objects of this type on the API server."},"destroyMethod":{"type":"string","description":"Defaults to `DELETE`. The HTTP method used to DELETE objects of this type on the API server."},"idAttribute":{"type":"string","description":"When set, this key will be used to operate on REST objects. For example, if the ID is set to 'name', changes to the API object will be to http://foo.com/bar/VALUE_OF_NAME. This value may also be a '/'-delimeted path to the id attribute if it is multple levels deep in the data (such as `attributes/id` in the case of an object `{ \"attributes\": { \"id\": 1234 }, \"config\": { \"name\": \"foo\", \"something\": \"bar\"}}`"},"keyFile":{"type":"string","description":"When set with the\u003cspan pulumi-lang-nodejs=\" certFile \" pulumi-lang-dotnet=\" CertFile \" pulumi-lang-go=\" certFile \" pulumi-lang-python=\" cert_file \" pulumi-lang-yaml=\" certFile \" pulumi-lang-java=\" certFile \"\u003e cert_file \u003c/span\u003eparameter, the provider will load a client certificate as a file for mTLS authentication. Note that this mechanism simply delegates to golang's tls.LoadX509KeyPair which does not support passphrase protected private keys. The most robust security protections available to the\u003cspan pulumi-lang-nodejs=\" keyFile \" pulumi-lang-dotnet=\" KeyFile \" pulumi-lang-go=\" keyFile \" pulumi-lang-python=\" key_file \" pulumi-lang-yaml=\" keyFile \" pulumi-lang-java=\" keyFile \"\u003e key_file \u003c/span\u003eare simple file system permissions."},"keyString":{"type":"string","description":"When set with the\u003cspan pulumi-lang-nodejs=\" certString \" pulumi-lang-dotnet=\" CertString \" pulumi-lang-go=\" certString \" pulumi-lang-python=\" cert_string \" pulumi-lang-yaml=\" certString \" pulumi-lang-java=\" certString \"\u003e cert_string \u003c/span\u003eparameter, the provider will load a client certificate as a string for mTLS authentication. Note that this mechanism simply delegates to golang's tls.LoadX509KeyPair which does not support passphrase protected private keys. The most robust security protections available to the\u003cspan pulumi-lang-nodejs=\" keyFile \" pulumi-lang-dotnet=\" KeyFile \" pulumi-lang-go=\" keyFile \" pulumi-lang-python=\" key_file \" pulumi-lang-yaml=\" keyFile \" pulumi-lang-java=\" keyFile \"\u003e key_file \u003c/span\u003eare simple file system permissions."},"password":{"type":"string","description":"When set, will use this password for BASIC auth to the API.","secret":true},"readMethod":{"type":"string","description":"Defaults to `GET`. The HTTP method used to READ objects of this type on the API server."},"rootCaFile":{"type":"string","description":"When set, the provider will load a root CA certificate as a file for mTLS authentication. This is useful when the API server is using a self-signed certificate and the client needs to trust it."},"rootCaString":{"type":"string","description":"When set, the provider will load a root CA certificate as a string for mTLS authentication. This is useful when the API server is using a self-signed certificate and the client needs to trust it."},"testPath":{"type":"string","description":"If set, the provider will issue a\u003cspan pulumi-lang-nodejs=\" readMethod \" pulumi-lang-dotnet=\" ReadMethod \" pulumi-lang-go=\" readMethod \" pulumi-lang-python=\" read_method \" pulumi-lang-yaml=\" readMethod \" pulumi-lang-java=\" readMethod \"\u003e read_method \u003c/span\u003erequest to this path after instantiation requiring a 200 OK response before proceeding. This is useful if your API provides a no-op endpoint that can signal if this provider is configured correctly. Response data will be ignored."},"updateMethod":{"type":"string","description":"Defaults to `PUT`. The HTTP method used to UPDATE objects of this type on the API server."},"uri":{"type":"string","description":"URI of the REST API endpoint. This serves as the base of all requests."},"username":{"type":"string","description":"When set, will use this username for BASIC auth to the API."},"xssiPrefix":{"type":"string","description":"Trim the xssi prefix from response string, if present, before parsing."}},"type":"object","inputProperties":{"bearerToken":{"type":"string","description":"Token to use for Authorization: Bearer \u003ctoken\u003e","secret":true},"certFile":{"type":"string","description":"When set with the\u003cspan pulumi-lang-nodejs=\" keyFile \" pulumi-lang-dotnet=\" KeyFile \" pulumi-lang-go=\" keyFile \" pulumi-lang-python=\" key_file \" pulumi-lang-yaml=\" keyFile \" pulumi-lang-java=\" keyFile \"\u003e key_file \u003c/span\u003eparameter, the provider will load a client certificate as a file for mTLS authentication."},"certString":{"type":"string","description":"When set with the\u003cspan pulumi-lang-nodejs=\" keyString \" pulumi-lang-dotnet=\" KeyString \" pulumi-lang-go=\" keyString \" pulumi-lang-python=\" key_string \" pulumi-lang-yaml=\" keyString \" pulumi-lang-java=\" keyString \"\u003e key_string \u003c/span\u003eparameter, the provider will load a client certificate as a string for mTLS authentication."},"copyKeys":{"type":"array","items":{"type":"string"},"description":"When set, any PUT to the API for an object will copy these keys from the data the provider has gathered about the object. This is useful if internal API information must also be provided with updates, such as the revision of the object."},"createMethod":{"type":"string","description":"Defaults to `POST`. The HTTP method used to CREATE objects of this type on the API server."},"createReturnsObject":{"type":"boolean","description":"Set this when the API returns the object created only on creation operations (POST). This is used by the provider to refresh internal data structures."},"debug":{"type":"boolean"},"destroyMethod":{"type":"string","description":"Defaults to `DELETE`. The HTTP method used to DELETE objects of this type on the API server."},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of header names and values to set on all outbound requests. This is useful if you want to use a script via the 'external' provider or provide a pre-approved token or change Content-Type from `application/json`. If \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e are set and Authorization is one of the headers defined here, the BASIC auth credentials are discarded."},"idAttribute":{"type":"string","description":"When set, this key will be used to operate on REST objects. For example, if the ID is set to 'name', changes to the API object will be to http://foo.com/bar/VALUE_OF_NAME. This value may also be a '/'-delimeted path to the id attribute if it is multple levels deep in the data (such as `attributes/id` in the case of an object `{ \"attributes\": { \"id\": 1234 }, \"config\": { \"name\": \"foo\", \"something\": \"bar\"}}`"},"insecure":{"type":"boolean","description":"When using https, this disables TLS verification of the host."},"keyFile":{"type":"string","description":"When set with the\u003cspan pulumi-lang-nodejs=\" certFile \" pulumi-lang-dotnet=\" CertFile \" pulumi-lang-go=\" certFile \" pulumi-lang-python=\" cert_file \" pulumi-lang-yaml=\" certFile \" pulumi-lang-java=\" certFile \"\u003e cert_file \u003c/span\u003eparameter, the provider will load a client certificate as a file for mTLS authentication. Note that this mechanism simply delegates to golang's tls.LoadX509KeyPair which does not support passphrase protected private keys. The most robust security protections available to the\u003cspan pulumi-lang-nodejs=\" keyFile \" pulumi-lang-dotnet=\" KeyFile \" pulumi-lang-go=\" keyFile \" pulumi-lang-python=\" key_file \" pulumi-lang-yaml=\" keyFile \" pulumi-lang-java=\" keyFile \"\u003e key_file \u003c/span\u003eare simple file system permissions."},"keyString":{"type":"string","description":"When set with the\u003cspan pulumi-lang-nodejs=\" certString \" pulumi-lang-dotnet=\" CertString \" pulumi-lang-go=\" certString \" pulumi-lang-python=\" cert_string \" pulumi-lang-yaml=\" certString \" pulumi-lang-java=\" certString \"\u003e cert_string \u003c/span\u003eparameter, the provider will load a client certificate as a string for mTLS authentication. Note that this mechanism simply delegates to golang's tls.LoadX509KeyPair which does not support passphrase protected private keys. The most robust security protections available to the\u003cspan pulumi-lang-nodejs=\" keyFile \" pulumi-lang-dotnet=\" KeyFile \" pulumi-lang-go=\" keyFile \" pulumi-lang-python=\" key_file \" pulumi-lang-yaml=\" keyFile \" pulumi-lang-java=\" keyFile \"\u003e key_file \u003c/span\u003eare simple file system permissions."},"oauthClientCredentials":{"$ref":"#/types/restapi:index%2FProviderOauthClientCredentials:ProviderOauthClientCredentials","description":"Configuration for oauth client credential flow using the https://pkg.go.dev/golang.org/x/oauth2 implementation"},"password":{"type":"string","description":"When set, will use this password for BASIC auth to the API.","secret":true},"rateLimit":{"type":"number","description":"Set this to limit the number of requests per second made to the API. Must be a positive number."},"readMethod":{"type":"string","description":"Defaults to `GET`. The HTTP method used to READ objects of this type on the API server."},"retries":{"$ref":"#/types/restapi:index%2FProviderRetries:ProviderRetries","description":"Configuration for automatic retry (connection/TLS/etc errors or a 500-range response except 501) of failed HTTP requests"},"rootCaFile":{"type":"string","description":"When set, the provider will load a root CA certificate as a file for mTLS authentication. This is useful when the API server is using a self-signed certificate and the client needs to trust it."},"rootCaString":{"type":"string","description":"When set, the provider will load a root CA certificate as a string for mTLS authentication. This is useful when the API server is using a self-signed certificate and the client needs to trust it."},"testPath":{"type":"string","description":"If set, the provider will issue a\u003cspan pulumi-lang-nodejs=\" readMethod \" pulumi-lang-dotnet=\" ReadMethod \" pulumi-lang-go=\" readMethod \" pulumi-lang-python=\" read_method \" pulumi-lang-yaml=\" readMethod \" pulumi-lang-java=\" readMethod \"\u003e read_method \u003c/span\u003erequest to this path after instantiation requiring a 200 OK response before proceeding. This is useful if your API provides a no-op endpoint that can signal if this provider is configured correctly. Response data will be ignored."},"timeout":{"type":"number","description":"When set, will cause requests taking longer than this time (in seconds) to be aborted. Must be a positive integer."},"updateMethod":{"type":"string","description":"Defaults to `PUT`. The HTTP method used to UPDATE objects of this type on the API server."},"uri":{"type":"string","description":"URI of the REST API endpoint. This serves as the base of all requests."},"useCookies":{"type":"boolean","description":"Enable cookie jar to persist session."},"username":{"type":"string","description":"When set, will use this username for BASIC auth to the API."},"writeReturnsObject":{"type":"boolean","description":"Set this when the API returns the object created on all write operations (POST, PUT). This is used by the provider to refresh internal data structures."},"xssiPrefix":{"type":"string","description":"Trim the xssi prefix from response string, if present, before parsing."}},"methods":{"terraformConfig":"pulumi:providers:restapi/terraformConfig"}},"resources":{"restapi:index/object:Object":{"description":"Acting as a restful API client, this object supports POST, GET, PUT and DELETE on the specified url\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as restapi from \"@pulumi/restapi\";\n\nconst foo2 = new restapi.Object(\"Foo2\", {\n    path: \"/api/objects\",\n    data: \"{ \\\"id\\\": \\\"55555\\\", \\\"first\\\": \\\"Foo\\\", \\\"last\\\": \\\"Bar\\\" }\",\n});\n```\n```python\nimport pulumi\nimport pulumi_restapi as restapi\n\nfoo2 = restapi.Object(\"Foo2\",\n    path=\"/api/objects\",\n    data=\"{ \\\"id\\\": \\\"55555\\\", \\\"first\\\": \\\"Foo\\\", \\\"last\\\": \\\"Bar\\\" }\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Restapi = Pulumi.Restapi;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo2 = new Restapi.Object(\"Foo2\", new()\n    {\n        Path = \"/api/objects\",\n        Data = \"{ \\\"id\\\": \\\"55555\\\", \\\"first\\\": \\\"Foo\\\", \\\"last\\\": \\\"Bar\\\" }\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/restapi/v3/restapi\"\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 := restapi.NewObject(ctx, \"Foo2\", \u0026restapi.ObjectArgs{\n\t\t\tPath: pulumi.String(\"/api/objects\"),\n\t\t\tData: pulumi.String(\"{ \\\"id\\\": \\\"55555\\\", \\\"first\\\": \\\"Foo\\\", \\\"last\\\": \\\"Bar\\\" }\"),\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.restapi.Object;\nimport com.pulumi.restapi.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 foo2 = new Object(\"foo2\", ObjectArgs.builder()\n            .path(\"/api/objects\")\n            .data(\"{ \\\"id\\\": \\\"55555\\\", \\\"first\\\": \\\"Foo\\\", \\\"last\\\": \\\"Bar\\\" }\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  foo2:\n    type: restapi:Object\n    name: Foo2\n    properties:\n      path: /api/objects\n      data: '{ \"id\": \"55555\", \"first\": \"Foo\", \"last\": \"Bar\" }'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as restapi from \"@pulumi/restapi\";\n\n// Example: Using read_search with search_patch to transform API responses\n//\n// When an API returns objects in a wrapped structure or with extra metadata,\n// you can use search_patch to transform the response to match your desired state.\nconst userWithSearchPatch = new restapi.Object(\"user_with_search_patch\", {\n    path: \"/api/users\",\n    data: JSON.stringify({\n        id: \"user123\",\n        name: \"John Doe\",\n        email: \"john@example.com\",\n    }),\n    readSearch: {\n        searchKey: \"email\",\n        searchValue: \"john@example.com\",\n        searchPatch: JSON.stringify([\n            {\n                op: \"copy\",\n                from: \"/data/id\",\n                path: \"/id\",\n            },\n            {\n                op: \"copy\",\n                from: \"/data/name\",\n                path: \"/name\",\n            },\n            {\n                op: \"copy\",\n                from: \"/data/email\",\n                path: \"/email\",\n            },\n            {\n                op: \"remove\",\n                path: \"/data\",\n            },\n            {\n                op: \"remove\",\n                path: \"/metadata\",\n            },\n        ]),\n    },\n});\n// Example: Remove server-generated fields from API responses\nconst cleanResponse = new restapi.Object(\"clean_response\", {\n    path: \"/api/resources\",\n    data: JSON.stringify({\n        id: \"resource456\",\n        name: \"My Resource\",\n    }),\n    readSearch: {\n        searchKey: \"id\",\n        searchValue: \"{id}\",\n        searchPatch: JSON.stringify([\n            {\n                op: \"remove\",\n                path: \"/createdAt\",\n            },\n            {\n                op: \"remove\",\n                path: \"/updatedAt\",\n            },\n            {\n                op: \"remove\",\n                path: \"/metadata\",\n            },\n        ]),\n    },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_restapi as restapi\n\n# Example: Using read_search with search_patch to transform API responses\n#\n# When an API returns objects in a wrapped structure or with extra metadata,\n# you can use search_patch to transform the response to match your desired state.\nuser_with_search_patch = restapi.Object(\"user_with_search_patch\",\n    path=\"/api/users\",\n    data=json.dumps({\n        \"id\": \"user123\",\n        \"name\": \"John Doe\",\n        \"email\": \"john@example.com\",\n    }),\n    read_search={\n        \"search_key\": \"email\",\n        \"search_value\": \"john@example.com\",\n        \"search_patch\": json.dumps([\n            {\n                \"op\": \"copy\",\n                \"from\": \"/data/id\",\n                \"path\": \"/id\",\n            },\n            {\n                \"op\": \"copy\",\n                \"from\": \"/data/name\",\n                \"path\": \"/name\",\n            },\n            {\n                \"op\": \"copy\",\n                \"from\": \"/data/email\",\n                \"path\": \"/email\",\n            },\n            {\n                \"op\": \"remove\",\n                \"path\": \"/data\",\n            },\n            {\n                \"op\": \"remove\",\n                \"path\": \"/metadata\",\n            },\n        ]),\n    })\n# Example: Remove server-generated fields from API responses\nclean_response = restapi.Object(\"clean_response\",\n    path=\"/api/resources\",\n    data=json.dumps({\n        \"id\": \"resource456\",\n        \"name\": \"My Resource\",\n    }),\n    read_search={\n        \"search_key\": \"id\",\n        \"search_value\": \"{id}\",\n        \"search_patch\": json.dumps([\n            {\n                \"op\": \"remove\",\n                \"path\": \"/createdAt\",\n            },\n            {\n                \"op\": \"remove\",\n                \"path\": \"/updatedAt\",\n            },\n            {\n                \"op\": \"remove\",\n                \"path\": \"/metadata\",\n            },\n        ]),\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Restapi = Pulumi.Restapi;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Example: Using read_search with search_patch to transform API responses\n    //\n    // When an API returns objects in a wrapped structure or with extra metadata,\n    // you can use search_patch to transform the response to match your desired state.\n    var userWithSearchPatch = new Restapi.Object(\"user_with_search_patch\", new()\n    {\n        Path = \"/api/users\",\n        Data = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"id\"] = \"user123\",\n            [\"name\"] = \"John Doe\",\n            [\"email\"] = \"john@example.com\",\n        }),\n        ReadSearch = new Restapi.Inputs.ObjectReadSearchArgs\n        {\n            SearchKey = \"email\",\n            SearchValue = \"john@example.com\",\n            SearchPatch = JsonSerializer.Serialize(new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"op\"] = \"copy\",\n                    [\"from\"] = \"/data/id\",\n                    [\"path\"] = \"/id\",\n                },\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"op\"] = \"copy\",\n                    [\"from\"] = \"/data/name\",\n                    [\"path\"] = \"/name\",\n                },\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"op\"] = \"copy\",\n                    [\"from\"] = \"/data/email\",\n                    [\"path\"] = \"/email\",\n                },\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"op\"] = \"remove\",\n                    [\"path\"] = \"/data\",\n                },\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"op\"] = \"remove\",\n                    [\"path\"] = \"/metadata\",\n                },\n            }),\n        },\n    });\n\n    // Example: Remove server-generated fields from API responses\n    var cleanResponse = new Restapi.Object(\"clean_response\", new()\n    {\n        Path = \"/api/resources\",\n        Data = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"id\"] = \"resource456\",\n            [\"name\"] = \"My Resource\",\n        }),\n        ReadSearch = new Restapi.Inputs.ObjectReadSearchArgs\n        {\n            SearchKey = \"id\",\n            SearchValue = \"{id}\",\n            SearchPatch = JsonSerializer.Serialize(new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"op\"] = \"remove\",\n                    [\"path\"] = \"/createdAt\",\n                },\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"op\"] = \"remove\",\n                    [\"path\"] = \"/updatedAt\",\n                },\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"op\"] = \"remove\",\n                    [\"path\"] = \"/metadata\",\n                },\n            }),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/restapi/v3/restapi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"id\":    \"user123\",\n\t\t\t\"name\":  \"John Doe\",\n\t\t\t\"email\": \"john@example.com\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal([]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"op\":   \"copy\",\n\t\t\t\t\"from\": \"/data/id\",\n\t\t\t\t\"path\": \"/id\",\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"op\":   \"copy\",\n\t\t\t\t\"from\": \"/data/name\",\n\t\t\t\t\"path\": \"/name\",\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"op\":   \"copy\",\n\t\t\t\t\"from\": \"/data/email\",\n\t\t\t\t\"path\": \"/email\",\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"op\":   \"remove\",\n\t\t\t\t\"path\": \"/data\",\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"op\":   \"remove\",\n\t\t\t\t\"path\": \"/metadata\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t// Example: Using read_search with search_patch to transform API responses\n\t\t//\n\t\t// When an API returns objects in a wrapped structure or with extra metadata,\n\t\t// you can use search_patch to transform the response to match your desired state.\n\t\t_, err = restapi.NewObject(ctx, \"user_with_search_patch\", \u0026restapi.ObjectArgs{\n\t\t\tPath: pulumi.String(\"/api/users\"),\n\t\t\tData: pulumi.String(json0),\n\t\t\tReadSearch: \u0026restapi.ObjectReadSearchArgs{\n\t\t\t\tSearchKey:   pulumi.String(\"email\"),\n\t\t\t\tSearchValue: pulumi.String(\"john@example.com\"),\n\t\t\t\tSearchPatch: pulumi.String(json1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON2, err := json.Marshal(map[string]interface{}{\n\t\t\t\"id\":   \"resource456\",\n\t\t\t\"name\": \"My Resource\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson2 := string(tmpJSON2)\n\t\ttmpJSON3, err := json.Marshal([]map[string]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"op\":   \"remove\",\n\t\t\t\t\"path\": \"/createdAt\",\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"op\":   \"remove\",\n\t\t\t\t\"path\": \"/updatedAt\",\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"op\":   \"remove\",\n\t\t\t\t\"path\": \"/metadata\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson3 := string(tmpJSON3)\n\t\t// Example: Remove server-generated fields from API responses\n\t\t_, err = restapi.NewObject(ctx, \"clean_response\", \u0026restapi.ObjectArgs{\n\t\t\tPath: pulumi.String(\"/api/resources\"),\n\t\t\tData: pulumi.String(json2),\n\t\t\tReadSearch: \u0026restapi.ObjectReadSearchArgs{\n\t\t\t\tSearchKey:   pulumi.String(\"id\"),\n\t\t\t\tSearchValue: pulumi.String(\"{id}\"),\n\t\t\t\tSearchPatch: pulumi.String(json3),\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.restapi.Object;\nimport com.pulumi.restapi.ObjectArgs;\nimport com.pulumi.restapi.inputs.ObjectReadSearchArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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        // Example: Using read_search with search_patch to transform API responses\n        //\n        // When an API returns objects in a wrapped structure or with extra metadata,\n        // you can use search_patch to transform the response to match your desired state.\n        var userWithSearchPatch = new Object(\"userWithSearchPatch\", ObjectArgs.builder()\n            .path(\"/api/users\")\n            .data(serializeJson(\n                jsonObject(\n                    jsonProperty(\"id\", \"user123\"),\n                    jsonProperty(\"name\", \"John Doe\"),\n                    jsonProperty(\"email\", \"john@example.com\")\n                )))\n            .readSearch(ObjectReadSearchArgs.builder()\n                .searchKey(\"email\")\n                .searchValue(\"john@example.com\")\n                .searchPatch(serializeJson(\n                    jsonArray(\n                        jsonObject(\n                            jsonProperty(\"op\", \"copy\"),\n                            jsonProperty(\"from\", \"/data/id\"),\n                            jsonProperty(\"path\", \"/id\")\n                        ), \n                        jsonObject(\n                            jsonProperty(\"op\", \"copy\"),\n                            jsonProperty(\"from\", \"/data/name\"),\n                            jsonProperty(\"path\", \"/name\")\n                        ), \n                        jsonObject(\n                            jsonProperty(\"op\", \"copy\"),\n                            jsonProperty(\"from\", \"/data/email\"),\n                            jsonProperty(\"path\", \"/email\")\n                        ), \n                        jsonObject(\n                            jsonProperty(\"op\", \"remove\"),\n                            jsonProperty(\"path\", \"/data\")\n                        ), \n                        jsonObject(\n                            jsonProperty(\"op\", \"remove\"),\n                            jsonProperty(\"path\", \"/metadata\")\n                        )\n                    )))\n                .build())\n            .build());\n\n        // Example: Remove server-generated fields from API responses\n        var cleanResponse = new Object(\"cleanResponse\", ObjectArgs.builder()\n            .path(\"/api/resources\")\n            .data(serializeJson(\n                jsonObject(\n                    jsonProperty(\"id\", \"resource456\"),\n                    jsonProperty(\"name\", \"My Resource\")\n                )))\n            .readSearch(ObjectReadSearchArgs.builder()\n                .searchKey(\"id\")\n                .searchValue(\"{id}\")\n                .searchPatch(serializeJson(\n                    jsonArray(\n                        jsonObject(\n                            jsonProperty(\"op\", \"remove\"),\n                            jsonProperty(\"path\", \"/createdAt\")\n                        ), \n                        jsonObject(\n                            jsonProperty(\"op\", \"remove\"),\n                            jsonProperty(\"path\", \"/updatedAt\")\n                        ), \n                        jsonObject(\n                            jsonProperty(\"op\", \"remove\"),\n                            jsonProperty(\"path\", \"/metadata\")\n                        )\n                    )))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Example: Using read_search with search_patch to transform API responses\n  #\n  # When an API returns objects in a wrapped structure or with extra metadata,\n  # you can use search_patch to transform the response to match your desired state.\n  userWithSearchPatch:\n    type: restapi:Object\n    name: user_with_search_patch\n    properties:\n      path: /api/users\n      data:\n        fn::toJSON:\n          id: user123\n          name: John Doe\n          email: john@example.com\n      readSearch:\n        searchKey: email\n        searchValue: john@example.com\n        searchPatch:\n          fn::toJSON:\n            - op: copy\n              from: /data/id\n              path: /id\n            - op: copy\n              from: /data/name\n              path: /name\n            - op: copy\n              from: /data/email\n              path: /email\n            - op: remove\n              path: /data\n            - op: remove\n              path: /metadata\n  # Example: Remove server-generated fields from API responses\n  cleanResponse:\n    type: restapi:Object\n    name: clean_response\n    properties:\n      path: /api/resources\n      data:\n        fn::toJSON:\n          id: resource456\n          name: My Resource\n      readSearch:\n        searchKey: id\n        searchValue: '{id}'\n        searchPatch:\n          fn::toJSON:\n            - op: remove\n              path: /createdAt\n            - op: remove\n              path: /updatedAt\n            - op: remove\n              path: /metadata\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe `pulumi import` command can be used, for example:\n\nidentifier: /\u003cfull path from server root\u003e/\u003cobject id\u003e\n\nExamples:\n\n```sh\n$ pulumi import restapi:index/object:Object objects /api/objects\n```\n\n```sh\n$ pulumi import restapi:index/object:Object object /api/objects/123\n```\n\n","properties":{"apiData":{"type":"object","additionalProperties":{"type":"string"}},"apiResponse":{"type":"string","description":"The raw body of the HTTP response from the last read of the object.\n"},"createMethod":{"type":"string","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`createMethod`\" pulumi-lang-dotnet=\"`CreateMethod`\" pulumi-lang-go=\"`createMethod`\" pulumi-lang-python=\"`create_method`\" pulumi-lang-yaml=\"`createMethod`\" pulumi-lang-java=\"`createMethod`\"\u003e`create_method`\u003c/span\u003e set on the provider. Allows per-resource override of \u003cspan pulumi-lang-nodejs=\"`createMethod`\" pulumi-lang-dotnet=\"`CreateMethod`\" pulumi-lang-go=\"`createMethod`\" pulumi-lang-python=\"`create_method`\" pulumi-lang-yaml=\"`createMethod`\" pulumi-lang-java=\"`createMethod`\"\u003e`create_method`\u003c/span\u003e (see \u003cspan pulumi-lang-nodejs=\"`createMethod`\" pulumi-lang-dotnet=\"`CreateMethod`\" pulumi-lang-go=\"`createMethod`\" pulumi-lang-python=\"`create_method`\" pulumi-lang-yaml=\"`createMethod`\" pulumi-lang-java=\"`createMethod`\"\u003e`create_method`\u003c/span\u003e provider config documentation)\n"},"createPath":{"type":"string"},"createResponse":{"type":"string","description":"The raw body of the HTTP response returned when creating the object.\n"},"data":{"type":"string","description":"Valid JSON object that this provider will manage with the API server.\n"},"debug":{"type":"boolean","description":"Whether to emit the HTTP request and response to STDOUT while working with the API object on the server.\n"},"destroyData":{"type":"string","description":"Valid JSON object to pass during to destroy requests.\n"},"destroyMethod":{"type":"string","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`destroyMethod`\" pulumi-lang-dotnet=\"`DestroyMethod`\" pulumi-lang-go=\"`destroyMethod`\" pulumi-lang-python=\"`destroy_method`\" pulumi-lang-yaml=\"`destroyMethod`\" pulumi-lang-java=\"`destroyMethod`\"\u003e`destroy_method`\u003c/span\u003e set on the provider. Allows per-resource override of \u003cspan pulumi-lang-nodejs=\"`destroyMethod`\" pulumi-lang-dotnet=\"`DestroyMethod`\" pulumi-lang-go=\"`destroyMethod`\" pulumi-lang-python=\"`destroy_method`\" pulumi-lang-yaml=\"`destroyMethod`\" pulumi-lang-java=\"`destroyMethod`\"\u003e`destroy_method`\u003c/span\u003e (see \u003cspan pulumi-lang-nodejs=\"`destroyMethod`\" pulumi-lang-dotnet=\"`DestroyMethod`\" pulumi-lang-go=\"`destroyMethod`\" pulumi-lang-python=\"`destroy_method`\" pulumi-lang-yaml=\"`destroyMethod`\" pulumi-lang-java=\"`destroyMethod`\"\u003e`destroy_method`\u003c/span\u003e provider config documentation)\n"},"destroyPath":{"type":"string"},"forceNews":{"type":"array","items":{"type":"string"},"description":"Any changes to these values will result in recreating the resource instead of updating.\n"},"idAttribute":{"type":"string","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e set on the provider. Allows per-resource override of \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e (see \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e provider config documentation)\n"},"ignoreAllServerChanges":{"type":"boolean"},"ignoreChangesTos":{"type":"array","items":{"type":"string"}},"ignoreServerAdditions":{"type":"boolean","description":"When set to 'true', fields added by the server (but not present in your configuration) will be ignored for drift detection. This prevents resource recreation when the API returns additional fields like defaults, timestamps, or metadata. Unlike 'ignore*all*server_changes', this still detects when the server modifies fields you explicitly configured. Default: false\n"},"objectId":{"type":"string","description":"Defaults to the id learned by the provider during normal operations and \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e. Allows you to set the id manually. This is used in conjunction with the `*_path` attributes.\n"},"path":{"type":"string","description":"The API path on top of the base URL set in the provider that represents objects of this type on the API server.\n"},"queryString":{"type":"string","description":"Query string to be included in the path\n"},"readData":{"type":"string","description":"Valid JSON object to pass during read requests.\n"},"readMethod":{"type":"string","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`readMethod`\" pulumi-lang-dotnet=\"`ReadMethod`\" pulumi-lang-go=\"`readMethod`\" pulumi-lang-python=\"`read_method`\" pulumi-lang-yaml=\"`readMethod`\" pulumi-lang-java=\"`readMethod`\"\u003e`read_method`\u003c/span\u003e set on the provider. Allows per-resource override of \u003cspan pulumi-lang-nodejs=\"`readMethod`\" pulumi-lang-dotnet=\"`ReadMethod`\" pulumi-lang-go=\"`readMethod`\" pulumi-lang-python=\"`read_method`\" pulumi-lang-yaml=\"`readMethod`\" pulumi-lang-java=\"`readMethod`\"\u003e`read_method`\u003c/span\u003e (see \u003cspan pulumi-lang-nodejs=\"`readMethod`\" pulumi-lang-dotnet=\"`ReadMethod`\" pulumi-lang-go=\"`readMethod`\" pulumi-lang-python=\"`read_method`\" pulumi-lang-yaml=\"`readMethod`\" pulumi-lang-java=\"`readMethod`\"\u003e`read_method`\u003c/span\u003e provider config documentation)\n"},"readPath":{"type":"string"},"readSearch":{"$ref":"#/types/restapi:index%2FObjectReadSearch:ObjectReadSearch","description":"Custom search for \u003cspan pulumi-lang-nodejs=\"`readPath`\" pulumi-lang-dotnet=\"`ReadPath`\" pulumi-lang-go=\"`readPath`\" pulumi-lang-python=\"`read_path`\" pulumi-lang-yaml=\"`readPath`\" pulumi-lang-java=\"`readPath`\"\u003e`read_path`\u003c/span\u003e. This map will take \u003cspan pulumi-lang-nodejs=\"`searchData`\" pulumi-lang-dotnet=\"`SearchData`\" pulumi-lang-go=\"`searchData`\" pulumi-lang-python=\"`search_data`\" pulumi-lang-yaml=\"`searchData`\" pulumi-lang-java=\"`searchData`\"\u003e`search_data`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`searchKey`\" pulumi-lang-dotnet=\"`SearchKey`\" pulumi-lang-go=\"`searchKey`\" pulumi-lang-python=\"`search_key`\" pulumi-lang-yaml=\"`searchKey`\" pulumi-lang-java=\"`searchKey`\"\u003e`search_key`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`searchValue`\" pulumi-lang-dotnet=\"`SearchValue`\" pulumi-lang-go=\"`searchValue`\" pulumi-lang-python=\"`search_value`\" pulumi-lang-yaml=\"`searchValue`\" pulumi-lang-java=\"`searchValue`\"\u003e`search_value`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`resultsKey`\" pulumi-lang-dotnet=\"`ResultsKey`\" pulumi-lang-go=\"`resultsKey`\" pulumi-lang-python=\"`results_key`\" pulumi-lang-yaml=\"`resultsKey`\" pulumi-lang-java=\"`resultsKey`\"\u003e`results_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`queryString`\" pulumi-lang-dotnet=\"`QueryString`\" pulumi-lang-go=\"`queryString`\" pulumi-lang-python=\"`query_string`\" pulumi-lang-yaml=\"`queryString`\" pulumi-lang-java=\"`queryString`\"\u003e`query_string`\u003c/span\u003e (see datasource config documentation)\n"},"updateData":{"type":"string","description":"Valid JSON object to pass during to update requests.\n"},"updateMethod":{"type":"string","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`updateMethod`\" pulumi-lang-dotnet=\"`UpdateMethod`\" pulumi-lang-go=\"`updateMethod`\" pulumi-lang-python=\"`update_method`\" pulumi-lang-yaml=\"`updateMethod`\" pulumi-lang-java=\"`updateMethod`\"\u003e`update_method`\u003c/span\u003e set on the provider. Allows per-resource override of \u003cspan pulumi-lang-nodejs=\"`updateMethod`\" pulumi-lang-dotnet=\"`UpdateMethod`\" pulumi-lang-go=\"`updateMethod`\" pulumi-lang-python=\"`update_method`\" pulumi-lang-yaml=\"`updateMethod`\" pulumi-lang-java=\"`updateMethod`\"\u003e`update_method`\u003c/span\u003e (see \u003cspan pulumi-lang-nodejs=\"`updateMethod`\" pulumi-lang-dotnet=\"`UpdateMethod`\" pulumi-lang-go=\"`updateMethod`\" pulumi-lang-python=\"`update_method`\" pulumi-lang-yaml=\"`updateMethod`\" pulumi-lang-java=\"`updateMethod`\"\u003e`update_method`\u003c/span\u003e provider config documentation)\n"},"updatePath":{"type":"string"}},"type":"object","required":["apiData","apiResponse","createResponse","data","path"],"inputProperties":{"createMethod":{"type":"string","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`createMethod`\" pulumi-lang-dotnet=\"`CreateMethod`\" pulumi-lang-go=\"`createMethod`\" pulumi-lang-python=\"`create_method`\" pulumi-lang-yaml=\"`createMethod`\" pulumi-lang-java=\"`createMethod`\"\u003e`create_method`\u003c/span\u003e set on the provider. Allows per-resource override of \u003cspan pulumi-lang-nodejs=\"`createMethod`\" pulumi-lang-dotnet=\"`CreateMethod`\" pulumi-lang-go=\"`createMethod`\" pulumi-lang-python=\"`create_method`\" pulumi-lang-yaml=\"`createMethod`\" pulumi-lang-java=\"`createMethod`\"\u003e`create_method`\u003c/span\u003e (see \u003cspan pulumi-lang-nodejs=\"`createMethod`\" pulumi-lang-dotnet=\"`CreateMethod`\" pulumi-lang-go=\"`createMethod`\" pulumi-lang-python=\"`create_method`\" pulumi-lang-yaml=\"`createMethod`\" pulumi-lang-java=\"`createMethod`\"\u003e`create_method`\u003c/span\u003e provider config documentation)\n"},"createPath":{"type":"string"},"data":{"type":"string","description":"Valid JSON object that this provider will manage with the API server.\n"},"debug":{"type":"boolean","description":"Whether to emit the HTTP request and response to STDOUT while working with the API object on the server.\n"},"destroyData":{"type":"string","description":"Valid JSON object to pass during to destroy requests.\n"},"destroyMethod":{"type":"string","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`destroyMethod`\" pulumi-lang-dotnet=\"`DestroyMethod`\" pulumi-lang-go=\"`destroyMethod`\" pulumi-lang-python=\"`destroy_method`\" pulumi-lang-yaml=\"`destroyMethod`\" pulumi-lang-java=\"`destroyMethod`\"\u003e`destroy_method`\u003c/span\u003e set on the provider. Allows per-resource override of \u003cspan pulumi-lang-nodejs=\"`destroyMethod`\" pulumi-lang-dotnet=\"`DestroyMethod`\" pulumi-lang-go=\"`destroyMethod`\" pulumi-lang-python=\"`destroy_method`\" pulumi-lang-yaml=\"`destroyMethod`\" pulumi-lang-java=\"`destroyMethod`\"\u003e`destroy_method`\u003c/span\u003e (see \u003cspan pulumi-lang-nodejs=\"`destroyMethod`\" pulumi-lang-dotnet=\"`DestroyMethod`\" pulumi-lang-go=\"`destroyMethod`\" pulumi-lang-python=\"`destroy_method`\" pulumi-lang-yaml=\"`destroyMethod`\" pulumi-lang-java=\"`destroyMethod`\"\u003e`destroy_method`\u003c/span\u003e provider config documentation)\n"},"destroyPath":{"type":"string"},"forceNews":{"type":"array","items":{"type":"string"},"description":"Any changes to these values will result in recreating the resource instead of updating.\n"},"idAttribute":{"type":"string","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e set on the provider. Allows per-resource override of \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e (see \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e provider config documentation)\n"},"ignoreAllServerChanges":{"type":"boolean"},"ignoreChangesTos":{"type":"array","items":{"type":"string"}},"ignoreServerAdditions":{"type":"boolean","description":"When set to 'true', fields added by the server (but not present in your configuration) will be ignored for drift detection. This prevents resource recreation when the API returns additional fields like defaults, timestamps, or metadata. Unlike 'ignore*all*server_changes', this still detects when the server modifies fields you explicitly configured. Default: false\n"},"objectId":{"type":"string","description":"Defaults to the id learned by the provider during normal operations and \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e. Allows you to set the id manually. This is used in conjunction with the `*_path` attributes.\n"},"path":{"type":"string","description":"The API path on top of the base URL set in the provider that represents objects of this type on the API server.\n"},"queryString":{"type":"string","description":"Query string to be included in the path\n"},"readData":{"type":"string","description":"Valid JSON object to pass during read requests.\n"},"readMethod":{"type":"string","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`readMethod`\" pulumi-lang-dotnet=\"`ReadMethod`\" pulumi-lang-go=\"`readMethod`\" pulumi-lang-python=\"`read_method`\" pulumi-lang-yaml=\"`readMethod`\" pulumi-lang-java=\"`readMethod`\"\u003e`read_method`\u003c/span\u003e set on the provider. Allows per-resource override of \u003cspan pulumi-lang-nodejs=\"`readMethod`\" pulumi-lang-dotnet=\"`ReadMethod`\" pulumi-lang-go=\"`readMethod`\" pulumi-lang-python=\"`read_method`\" pulumi-lang-yaml=\"`readMethod`\" pulumi-lang-java=\"`readMethod`\"\u003e`read_method`\u003c/span\u003e (see \u003cspan pulumi-lang-nodejs=\"`readMethod`\" pulumi-lang-dotnet=\"`ReadMethod`\" pulumi-lang-go=\"`readMethod`\" pulumi-lang-python=\"`read_method`\" pulumi-lang-yaml=\"`readMethod`\" pulumi-lang-java=\"`readMethod`\"\u003e`read_method`\u003c/span\u003e provider config documentation)\n"},"readPath":{"type":"string"},"readSearch":{"$ref":"#/types/restapi:index%2FObjectReadSearch:ObjectReadSearch","description":"Custom search for \u003cspan pulumi-lang-nodejs=\"`readPath`\" pulumi-lang-dotnet=\"`ReadPath`\" pulumi-lang-go=\"`readPath`\" pulumi-lang-python=\"`read_path`\" pulumi-lang-yaml=\"`readPath`\" pulumi-lang-java=\"`readPath`\"\u003e`read_path`\u003c/span\u003e. This map will take \u003cspan pulumi-lang-nodejs=\"`searchData`\" pulumi-lang-dotnet=\"`SearchData`\" pulumi-lang-go=\"`searchData`\" pulumi-lang-python=\"`search_data`\" pulumi-lang-yaml=\"`searchData`\" pulumi-lang-java=\"`searchData`\"\u003e`search_data`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`searchKey`\" pulumi-lang-dotnet=\"`SearchKey`\" pulumi-lang-go=\"`searchKey`\" pulumi-lang-python=\"`search_key`\" pulumi-lang-yaml=\"`searchKey`\" pulumi-lang-java=\"`searchKey`\"\u003e`search_key`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`searchValue`\" pulumi-lang-dotnet=\"`SearchValue`\" pulumi-lang-go=\"`searchValue`\" pulumi-lang-python=\"`search_value`\" pulumi-lang-yaml=\"`searchValue`\" pulumi-lang-java=\"`searchValue`\"\u003e`search_value`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`resultsKey`\" pulumi-lang-dotnet=\"`ResultsKey`\" pulumi-lang-go=\"`resultsKey`\" pulumi-lang-python=\"`results_key`\" pulumi-lang-yaml=\"`resultsKey`\" pulumi-lang-java=\"`resultsKey`\"\u003e`results_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`queryString`\" pulumi-lang-dotnet=\"`QueryString`\" pulumi-lang-go=\"`queryString`\" pulumi-lang-python=\"`query_string`\" pulumi-lang-yaml=\"`queryString`\" pulumi-lang-java=\"`queryString`\"\u003e`query_string`\u003c/span\u003e (see datasource config documentation)\n"},"updateData":{"type":"string","description":"Valid JSON object to pass during to update requests.\n"},"updateMethod":{"type":"string","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`updateMethod`\" pulumi-lang-dotnet=\"`UpdateMethod`\" pulumi-lang-go=\"`updateMethod`\" pulumi-lang-python=\"`update_method`\" pulumi-lang-yaml=\"`updateMethod`\" pulumi-lang-java=\"`updateMethod`\"\u003e`update_method`\u003c/span\u003e set on the provider. Allows per-resource override of \u003cspan pulumi-lang-nodejs=\"`updateMethod`\" pulumi-lang-dotnet=\"`UpdateMethod`\" pulumi-lang-go=\"`updateMethod`\" pulumi-lang-python=\"`update_method`\" pulumi-lang-yaml=\"`updateMethod`\" pulumi-lang-java=\"`updateMethod`\"\u003e`update_method`\u003c/span\u003e (see \u003cspan pulumi-lang-nodejs=\"`updateMethod`\" pulumi-lang-dotnet=\"`UpdateMethod`\" pulumi-lang-go=\"`updateMethod`\" pulumi-lang-python=\"`update_method`\" pulumi-lang-yaml=\"`updateMethod`\" pulumi-lang-java=\"`updateMethod`\"\u003e`update_method`\u003c/span\u003e provider config documentation)\n"},"updatePath":{"type":"string"}},"requiredInputs":["data","path"],"stateInputs":{"description":"Input properties used for looking up and filtering Object resources.\n","properties":{"apiData":{"type":"object","additionalProperties":{"type":"string"}},"apiResponse":{"type":"string","description":"The raw body of the HTTP response from the last read of the object.\n"},"createMethod":{"type":"string","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`createMethod`\" pulumi-lang-dotnet=\"`CreateMethod`\" pulumi-lang-go=\"`createMethod`\" pulumi-lang-python=\"`create_method`\" pulumi-lang-yaml=\"`createMethod`\" pulumi-lang-java=\"`createMethod`\"\u003e`create_method`\u003c/span\u003e set on the provider. Allows per-resource override of \u003cspan pulumi-lang-nodejs=\"`createMethod`\" pulumi-lang-dotnet=\"`CreateMethod`\" pulumi-lang-go=\"`createMethod`\" pulumi-lang-python=\"`create_method`\" pulumi-lang-yaml=\"`createMethod`\" pulumi-lang-java=\"`createMethod`\"\u003e`create_method`\u003c/span\u003e (see \u003cspan pulumi-lang-nodejs=\"`createMethod`\" pulumi-lang-dotnet=\"`CreateMethod`\" pulumi-lang-go=\"`createMethod`\" pulumi-lang-python=\"`create_method`\" pulumi-lang-yaml=\"`createMethod`\" pulumi-lang-java=\"`createMethod`\"\u003e`create_method`\u003c/span\u003e provider config documentation)\n"},"createPath":{"type":"string"},"createResponse":{"type":"string","description":"The raw body of the HTTP response returned when creating the object.\n"},"data":{"type":"string","description":"Valid JSON object that this provider will manage with the API server.\n"},"debug":{"type":"boolean","description":"Whether to emit the HTTP request and response to STDOUT while working with the API object on the server.\n"},"destroyData":{"type":"string","description":"Valid JSON object to pass during to destroy requests.\n"},"destroyMethod":{"type":"string","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`destroyMethod`\" pulumi-lang-dotnet=\"`DestroyMethod`\" pulumi-lang-go=\"`destroyMethod`\" pulumi-lang-python=\"`destroy_method`\" pulumi-lang-yaml=\"`destroyMethod`\" pulumi-lang-java=\"`destroyMethod`\"\u003e`destroy_method`\u003c/span\u003e set on the provider. Allows per-resource override of \u003cspan pulumi-lang-nodejs=\"`destroyMethod`\" pulumi-lang-dotnet=\"`DestroyMethod`\" pulumi-lang-go=\"`destroyMethod`\" pulumi-lang-python=\"`destroy_method`\" pulumi-lang-yaml=\"`destroyMethod`\" pulumi-lang-java=\"`destroyMethod`\"\u003e`destroy_method`\u003c/span\u003e (see \u003cspan pulumi-lang-nodejs=\"`destroyMethod`\" pulumi-lang-dotnet=\"`DestroyMethod`\" pulumi-lang-go=\"`destroyMethod`\" pulumi-lang-python=\"`destroy_method`\" pulumi-lang-yaml=\"`destroyMethod`\" pulumi-lang-java=\"`destroyMethod`\"\u003e`destroy_method`\u003c/span\u003e provider config documentation)\n"},"destroyPath":{"type":"string"},"forceNews":{"type":"array","items":{"type":"string"},"description":"Any changes to these values will result in recreating the resource instead of updating.\n"},"idAttribute":{"type":"string","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e set on the provider. Allows per-resource override of \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e (see \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e provider config documentation)\n"},"ignoreAllServerChanges":{"type":"boolean"},"ignoreChangesTos":{"type":"array","items":{"type":"string"}},"ignoreServerAdditions":{"type":"boolean","description":"When set to 'true', fields added by the server (but not present in your configuration) will be ignored for drift detection. This prevents resource recreation when the API returns additional fields like defaults, timestamps, or metadata. Unlike 'ignore*all*server_changes', this still detects when the server modifies fields you explicitly configured. Default: false\n"},"objectId":{"type":"string","description":"Defaults to the id learned by the provider during normal operations and \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e. Allows you to set the id manually. This is used in conjunction with the `*_path` attributes.\n"},"path":{"type":"string","description":"The API path on top of the base URL set in the provider that represents objects of this type on the API server.\n"},"queryString":{"type":"string","description":"Query string to be included in the path\n"},"readData":{"type":"string","description":"Valid JSON object to pass during read requests.\n"},"readMethod":{"type":"string","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`readMethod`\" pulumi-lang-dotnet=\"`ReadMethod`\" pulumi-lang-go=\"`readMethod`\" pulumi-lang-python=\"`read_method`\" pulumi-lang-yaml=\"`readMethod`\" pulumi-lang-java=\"`readMethod`\"\u003e`read_method`\u003c/span\u003e set on the provider. Allows per-resource override of \u003cspan pulumi-lang-nodejs=\"`readMethod`\" pulumi-lang-dotnet=\"`ReadMethod`\" pulumi-lang-go=\"`readMethod`\" pulumi-lang-python=\"`read_method`\" pulumi-lang-yaml=\"`readMethod`\" pulumi-lang-java=\"`readMethod`\"\u003e`read_method`\u003c/span\u003e (see \u003cspan pulumi-lang-nodejs=\"`readMethod`\" pulumi-lang-dotnet=\"`ReadMethod`\" pulumi-lang-go=\"`readMethod`\" pulumi-lang-python=\"`read_method`\" pulumi-lang-yaml=\"`readMethod`\" pulumi-lang-java=\"`readMethod`\"\u003e`read_method`\u003c/span\u003e provider config documentation)\n"},"readPath":{"type":"string"},"readSearch":{"$ref":"#/types/restapi:index%2FObjectReadSearch:ObjectReadSearch","description":"Custom search for \u003cspan pulumi-lang-nodejs=\"`readPath`\" pulumi-lang-dotnet=\"`ReadPath`\" pulumi-lang-go=\"`readPath`\" pulumi-lang-python=\"`read_path`\" pulumi-lang-yaml=\"`readPath`\" pulumi-lang-java=\"`readPath`\"\u003e`read_path`\u003c/span\u003e. This map will take \u003cspan pulumi-lang-nodejs=\"`searchData`\" pulumi-lang-dotnet=\"`SearchData`\" pulumi-lang-go=\"`searchData`\" pulumi-lang-python=\"`search_data`\" pulumi-lang-yaml=\"`searchData`\" pulumi-lang-java=\"`searchData`\"\u003e`search_data`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`searchKey`\" pulumi-lang-dotnet=\"`SearchKey`\" pulumi-lang-go=\"`searchKey`\" pulumi-lang-python=\"`search_key`\" pulumi-lang-yaml=\"`searchKey`\" pulumi-lang-java=\"`searchKey`\"\u003e`search_key`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`searchValue`\" pulumi-lang-dotnet=\"`SearchValue`\" pulumi-lang-go=\"`searchValue`\" pulumi-lang-python=\"`search_value`\" pulumi-lang-yaml=\"`searchValue`\" pulumi-lang-java=\"`searchValue`\"\u003e`search_value`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`resultsKey`\" pulumi-lang-dotnet=\"`ResultsKey`\" pulumi-lang-go=\"`resultsKey`\" pulumi-lang-python=\"`results_key`\" pulumi-lang-yaml=\"`resultsKey`\" pulumi-lang-java=\"`resultsKey`\"\u003e`results_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`queryString`\" pulumi-lang-dotnet=\"`QueryString`\" pulumi-lang-go=\"`queryString`\" pulumi-lang-python=\"`query_string`\" pulumi-lang-yaml=\"`queryString`\" pulumi-lang-java=\"`queryString`\"\u003e`query_string`\u003c/span\u003e (see datasource config documentation)\n"},"updateData":{"type":"string","description":"Valid JSON object to pass during to update requests.\n"},"updateMethod":{"type":"string","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`updateMethod`\" pulumi-lang-dotnet=\"`UpdateMethod`\" pulumi-lang-go=\"`updateMethod`\" pulumi-lang-python=\"`update_method`\" pulumi-lang-yaml=\"`updateMethod`\" pulumi-lang-java=\"`updateMethod`\"\u003e`update_method`\u003c/span\u003e set on the provider. Allows per-resource override of \u003cspan pulumi-lang-nodejs=\"`updateMethod`\" pulumi-lang-dotnet=\"`UpdateMethod`\" pulumi-lang-go=\"`updateMethod`\" pulumi-lang-python=\"`update_method`\" pulumi-lang-yaml=\"`updateMethod`\" pulumi-lang-java=\"`updateMethod`\"\u003e`update_method`\u003c/span\u003e (see \u003cspan pulumi-lang-nodejs=\"`updateMethod`\" pulumi-lang-dotnet=\"`UpdateMethod`\" pulumi-lang-go=\"`updateMethod`\" pulumi-lang-python=\"`update_method`\" pulumi-lang-yaml=\"`updateMethod`\" pulumi-lang-java=\"`updateMethod`\"\u003e`update_method`\u003c/span\u003e provider config documentation)\n"},"updatePath":{"type":"string"}},"type":"object"}}},"functions":{"pulumi:providers:restapi/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"$ref":"#/resources/pulumi:providers:restapi"}},"type":"object","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}},"restapi:index/getObject:getObject":{"description":"Acting as a restful API client, this object supports POST, GET, PUT and DELETE on the specified url\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as restapi from \"@pulumi/restapi\";\n\nconst john = restapi.getObject({\n    path: \"/api/objects\",\n    searchKey: \"first\",\n    searchValue: \"John\",\n});\n```\n```python\nimport pulumi\nimport pulumi_restapi as restapi\n\njohn = restapi.get_object(path=\"/api/objects\",\n    search_key=\"first\",\n    search_value=\"John\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Restapi = Pulumi.Restapi;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var john = Restapi.GetObject.Invoke(new()\n    {\n        Path = \"/api/objects\",\n        SearchKey = \"first\",\n        SearchValue = \"John\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/restapi/v3/restapi\"\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 := restapi.LookupObject(ctx, \u0026restapi.LookupObjectArgs{\n\t\t\tPath:        \"/api/objects\",\n\t\t\tSearchKey:   \"first\",\n\t\t\tSearchValue: \"John\",\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.restapi.RestapiFunctions;\nimport com.pulumi.restapi.inputs.GetObjectArgs;\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 john = RestapiFunctions.getObject(GetObjectArgs.builder()\n            .path(\"/api/objects\")\n            .searchKey(\"first\")\n            .searchValue(\"John\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  john:\n    fn::invoke:\n      function: restapi:getObject\n      arguments:\n        path: /api/objects\n        searchKey: first\n        searchValue: John\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getObject.\n","properties":{"debug":{"type":"boolean","description":"Whether to emit verbose debug output while working with the API object on the server.\n"},"idAttribute":{"type":"string","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e set on the provider. Allows per-resource override of \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e (see \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e provider config documentation)\n"},"path":{"type":"string","description":"The API path on top of the base URL set in the provider that represents objects of this type on the API server.\n"},"queryString":{"type":"string","description":"An optional query string to send when performing the search.\n"},"readQueryString":{"type":"string","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`queryString`\" pulumi-lang-dotnet=\"`QueryString`\" pulumi-lang-go=\"`queryString`\" pulumi-lang-python=\"`query_string`\" pulumi-lang-yaml=\"`queryString`\" pulumi-lang-java=\"`queryString`\"\u003e`query_string`\u003c/span\u003e set on data source. This key allows setting a different or empty query string for reading the object.\n"},"resultsContainsObject":{"type":"boolean"},"resultsKey":{"type":"string","description":"When issuing a GET to the path, this JSON key is used to locate the results array. The format is 'field/field/field'. Example: 'results/values'. If omitted, it is assumed the results coming back are already an array and are to be used exactly as-is.\n"},"searchData":{"type":"string","description":"Valid JSON object to pass to search request as body\n"},"searchKey":{"type":"string","description":"When reading search results from the API, this key is used to identify the specific record to read. This should be a unique record such as 'name'. Similar to results_key, the value may be in the format of 'field/field/field' to search for data deeper in the returned object.\n"},"searchPath":{"type":"string","description":"The API path on top of the base URL set in the provider that represents the location to search for objects of this type on the API server. If not set, defaults to the value of path.\n"},"searchValue":{"type":"string","description":"The value of 'search*key' will be compared to this value to determine if the correct object was found. Example: if 'search*key' is 'name' and 'search_value' is 'foo', the record in the array returned by the API with name=foo will be used.\n"}},"type":"object","required":["path","searchKey","searchValue"]},"outputs":{"description":"A collection of values returned by getObject.\n","properties":{"apiData":{"additionalProperties":{"type":"string"},"type":"object"},"apiResponse":{"description":"The raw body of the HTTP response from the last read of the object.\n","type":"string"},"debug":{"description":"Whether to emit verbose debug output while working with the API object on the server.\n","type":"boolean"},"id":{"description":"The ID of the object.\n","type":"string"},"idAttribute":{"description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e set on the provider. Allows per-resource override of \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e (see \u003cspan pulumi-lang-nodejs=\"`idAttribute`\" pulumi-lang-dotnet=\"`IdAttribute`\" pulumi-lang-go=\"`idAttribute`\" pulumi-lang-python=\"`id_attribute`\" pulumi-lang-yaml=\"`idAttribute`\" pulumi-lang-java=\"`idAttribute`\"\u003e`id_attribute`\u003c/span\u003e provider config documentation)\n","type":"string"},"path":{"description":"The API path on top of the base URL set in the provider that represents objects of this type on the API server.\n","type":"string"},"queryString":{"description":"An optional query string to send when performing the search.\n","type":"string"},"readQueryString":{"description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`queryString`\" pulumi-lang-dotnet=\"`QueryString`\" pulumi-lang-go=\"`queryString`\" pulumi-lang-python=\"`query_string`\" pulumi-lang-yaml=\"`queryString`\" pulumi-lang-java=\"`queryString`\"\u003e`query_string`\u003c/span\u003e set on data source. This key allows setting a different or empty query string for reading the object.\n","type":"string"},"resultsContainsObject":{"type":"boolean"},"resultsKey":{"description":"When issuing a GET to the path, this JSON key is used to locate the results array. The format is 'field/field/field'. Example: 'results/values'. If omitted, it is assumed the results coming back are already an array and are to be used exactly as-is.\n","type":"string"},"searchData":{"description":"Valid JSON object to pass to search request as body\n","type":"string"},"searchKey":{"description":"When reading search results from the API, this key is used to identify the specific record to read. This should be a unique record such as 'name'. Similar to results_key, the value may be in the format of 'field/field/field' to search for data deeper in the returned object.\n","type":"string"},"searchPath":{"description":"The API path on top of the base URL set in the provider that represents the location to search for objects of this type on the API server. If not set, defaults to the value of path.\n","type":"string"},"searchValue":{"description":"The value of 'search*key' will be compared to this value to determine if the correct object was found. Example: if 'search*key' is 'name' and 'search_value' is 'foo', the record in the array returned by the API with name=foo will be used.\n","type":"string"}},"required":["apiData","apiResponse","id","path","searchKey","searchValue"],"type":"object"}}},"parameterization":{"baseProvider":{"name":"terraform-provider","version":"1.0.1"},"parameter":"eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL21hc3RlcmNhcmQvcmVzdGFwaSIsInZlcnNpb24iOiIzLjAuMC1yYzIifX0="}}