ory_client/models/
create_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.2
7 * Contact: support@ory.sh
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// CreateIdentityBody : Create Identity Body
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct CreateIdentityBody {
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    #[serde(rename = "organization_id", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
29    pub organization_id: Option<Option<String>>,
30    /// RecoveryAddresses contains all the addresses that can be used to recover an identity.  Use this structure to import recovery addresses for an identity. Please keep in mind that the address needs to be represented in the Identity Schema or this field will be overwritten on the next identity update.
31    #[serde(rename = "recovery_addresses", skip_serializing_if = "Option::is_none")]
32    pub recovery_addresses: Option<Vec<models::RecoveryIdentityAddress>>,
33    /// SchemaID is the ID of the JSON Schema to be used for validating the identity's traits.
34    #[serde(rename = "schema_id")]
35    pub schema_id: String,
36    /// State is the identity's state. active StateActive inactive StateInactive
37    #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
38    pub state: Option<StateEnum>,
39    /// 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_url`.
40    #[serde(rename = "traits")]
41    pub traits: serde_json::Value,
42    /// VerifiableAddresses contains all the addresses that can be verified by the user.  Use this structure to import verified addresses for an identity. Please keep in mind that the address needs to be represented in the Identity Schema or this field will be overwritten on the next identity update.
43    #[serde(rename = "verifiable_addresses", skip_serializing_if = "Option::is_none")]
44    pub verifiable_addresses: Option<Vec<models::VerifiableIdentityAddress>>,
45}
46
47impl CreateIdentityBody {
48    /// Create Identity Body
49    pub fn new(schema_id: String, traits: serde_json::Value) -> CreateIdentityBody {
50        CreateIdentityBody {
51            credentials: None,
52            external_id: None,
53            metadata_admin: None,
54            metadata_public: None,
55            organization_id: None,
56            recovery_addresses: None,
57            schema_id,
58            state: None,
59            traits,
60            verifiable_addresses: None,
61        }
62    }
63}
64/// State is the identity's state. active StateActive inactive StateInactive
65#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
66pub enum StateEnum {
67    #[serde(rename = "active")]
68    Active,
69    #[serde(rename = "inactive")]
70    Inactive,
71}
72
73impl Default for StateEnum {
74    fn default() -> StateEnum {
75        Self::Active
76    }
77}
78