ory_client/models/update_identity_body.rs
1/*
2 * Ory APIs
3 *
4 * # Introduction Documentation for all public and administrative Ory APIs. Administrative APIs can only be accessed with a valid Personal Access Token. Public APIs are mostly used in browsers. ## SDKs This document describes the APIs available in the Ory Network. The APIs are available as SDKs for the following languages: | Language | Download SDK | Documentation | | -------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------ | | Dart | [pub.dev](https://pub.dev/packages/ory_client) | [README](https://github.com/ory/sdk/blob/master/clients/client/dart/README.md) | | .NET | [nuget.org](https://www.nuget.org/packages/Ory.Client/) | [README](https://github.com/ory/sdk/blob/master/clients/client/dotnet/README.md) | | Elixir | [hex.pm](https://hex.pm/packages/ory_client) | [README](https://github.com/ory/sdk/blob/master/clients/client/elixir/README.md) | | Go | [github.com](https://github.com/ory/client-go) | [README](https://github.com/ory/sdk/blob/master/clients/client/go/README.md) | | Java | [maven.org](https://search.maven.org/artifact/sh.ory/ory-client) | [README](https://github.com/ory/sdk/blob/master/clients/client/java/README.md) | | JavaScript | [npmjs.com](https://www.npmjs.com/package/@ory/client) | [README](https://github.com/ory/sdk/blob/master/clients/client/typescript/README.md) | | JavaScript (With fetch) | [npmjs.com](https://www.npmjs.com/package/@ory/client-fetch) | [README](https://github.com/ory/sdk/blob/master/clients/client/typescript-fetch/README.md) | | PHP | [packagist.org](https://packagist.org/packages/ory/client) | [README](https://github.com/ory/sdk/blob/master/clients/client/php/README.md) | | Python | [pypi.org](https://pypi.org/project/ory-client/) | [README](https://github.com/ory/sdk/blob/master/clients/client/python/README.md) | | Ruby | [rubygems.org](https://rubygems.org/gems/ory-client) | [README](https://github.com/ory/sdk/blob/master/clients/client/ruby/README.md) | | Rust | [crates.io](https://crates.io/crates/ory-client) | [README](https://github.com/ory/sdk/blob/master/clients/client/rust/README.md) |
5 *
6 * The version of the OpenAPI document: v1.22.21
7 * Contact: support@ory.sh
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// UpdateIdentityBody : Update Identity Body
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct UpdateIdentityBody {
17 #[serde(rename = "credentials", skip_serializing_if = "Option::is_none")]
18 pub credentials: Option<Box<models::IdentityWithCredentials>>,
19 /// ExternalID is an optional external ID of the identity. This is used to link the identity to an external system. If set, the external ID must be unique across all identities.
20 #[serde(rename = "external_id", skip_serializing_if = "Option::is_none")]
21 pub external_id: Option<String>,
22 /// Store metadata about the user which is only accessible through admin APIs such as `GET /admin/identities/<id>`.
23 #[serde(rename = "metadata_admin", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
24 pub metadata_admin: Option<Option<serde_json::Value>>,
25 /// Store metadata about the identity which the identity itself can see when calling for example the session endpoint. Do not store sensitive information (e.g. credit score) about the identity in this field.
26 #[serde(rename = "metadata_public", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
27 pub metadata_public: Option<Option<serde_json::Value>>,
28 /// SchemaID is the ID of the JSON Schema to be used for validating the identity's traits. If set will update the Identity's SchemaID.
29 #[serde(rename = "schema_id")]
30 pub schema_id: String,
31 /// State is the identity's state. active StateActive inactive StateInactive
32 #[serde(rename = "state")]
33 pub state: StateEnum,
34 /// Traits represent an identity's traits. The identity is able to create, modify, and delete traits in a self-service manner. The input will always be validated against the JSON Schema defined in `schema_id`.
35 #[serde(rename = "traits")]
36 pub traits: serde_json::Value,
37}
38
39impl UpdateIdentityBody {
40 /// Update Identity Body
41 pub fn new(schema_id: String, state: StateEnum, traits: serde_json::Value) -> UpdateIdentityBody {
42 UpdateIdentityBody {
43 credentials: None,
44 external_id: None,
45 metadata_admin: None,
46 metadata_public: None,
47 schema_id,
48 state,
49 traits,
50 }
51 }
52}
53/// State is the identity's state. active StateActive inactive StateInactive
54#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
55pub enum StateEnum {
56 #[serde(rename = "active")]
57 Active,
58 #[serde(rename = "inactive")]
59 Inactive,
60}
61
62impl Default for StateEnum {
63 fn default() -> StateEnum {
64 Self::Active
65 }
66}
67