/*
 * Ory Kratos API
 *
 * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests. 
 *
 * The version of the OpenAPI document: v0.10.1
 * Contact: hi@ory.sh
 * Generated by: https://openapi-generator.tech
 */



#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "nodetype")]
pub enum UiNodeAttributes {
    #[serde(rename="a")]
    UiNodeAnchorAttributes {
        /// The link's href (destination) URL.  format: uri
        #[serde(rename = "href")]
        href: String,
        /// A unique identifier
        #[serde(rename = "id")]
        id: String,
        #[serde(rename = "title")]
        title: Box<crate::models::UiText>,
    },
    #[serde(rename="img")]
    UiNodeImageAttributes {
        /// Height of the image
        #[serde(rename = "height")]
        height: i64,
        /// A unique identifier
        #[serde(rename = "id")]
        id: String,
        /// The image's source URL.  format: uri
        #[serde(rename = "src")]
        src: String,
        /// Width of the image
        #[serde(rename = "width")]
        width: i64,
    },
    #[serde(rename="input")]
    UiNodeInputAttributes {
        /// Sets the input's disabled field to true or false.
        #[serde(rename = "disabled")]
        disabled: bool,
        #[serde(rename = "label", skip_serializing_if = "Option::is_none")]
        label: Option<Box<crate::models::UiText>>,
        /// The input's element name.
        #[serde(rename = "name")]
        name: String,
        /// OnClick may contain javascript which should be executed on click. This is primarily used for WebAuthn.
        #[serde(rename = "onclick", skip_serializing_if = "Option::is_none")]
        onclick: Option<String>,
        /// The input's pattern.
        #[serde(rename = "pattern", skip_serializing_if = "Option::is_none")]
        pattern: Option<String>,
        /// Mark this input field as required.
        #[serde(rename = "required", skip_serializing_if = "Option::is_none")]
        required: Option<bool>,
        #[serde(rename = "type")]
        _type: String,
        /// The input's value.
        #[serde(rename = "value", skip_serializing_if = "Option::is_none")]
        value: Option<serde_json::Value>,
    },
    #[serde(rename="script")]
    UiNodeScriptAttributes {
        /// The script async type
        #[serde(rename = "async")]
        _async: bool,
        /// The script cross origin policy
        #[serde(rename = "crossorigin")]
        crossorigin: String,
        /// A unique identifier
        #[serde(rename = "id")]
        id: String,
        /// The script's integrity hash
        #[serde(rename = "integrity")]
        integrity: String,
        /// Nonce for CSP  A nonce you may want to use to improve your Content Security Policy. You do not have to use this value but if you want to improve your CSP policies you may use it. You can also choose to use your own nonce value!
        #[serde(rename = "nonce")]
        nonce: String,
        /// The script referrer policy
        #[serde(rename = "referrerpolicy")]
        referrerpolicy: String,
        /// The script source
        #[serde(rename = "src")]
        src: String,
        /// The script MIME type
        #[serde(rename = "type")]
        _type: String,
    },
    #[serde(rename="text")]
    UiNodeTextAttributes {
        /// A unique identifier
        #[serde(rename = "id")]
        id: String,
        #[serde(rename = "text")]
        text: Box<crate::models::UiText>,
    },
}




