// Code generated by oagen. DO NOT EDIT.
#[allow(unused_imports)]
use super::*;
#[allow(unused_imports)]
use crate::enums::*;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CreateAuthorizationResource {
/// An external identifier for the resource.
pub external_id: String,
/// A display name for the resource.
pub name: String,
/// An optional description of the resource.
#[serde(skip_serializing_if = "Option::is_none", default)]
pub description: Option<String>,
/// The slug of the resource type.
pub resource_type_slug: String,
/// The ID of the organization this resource belongs to.
pub organization_id: String,
/// The ID of the parent resource. Mutually exclusive with `parent_resource_external_id` and `parent_resource_type_slug`.
#[serde(skip_serializing_if = "Option::is_none", default)]
pub parent_resource_id: Option<String>,
/// The external ID of the parent resource. Required with `parent_resource_type_slug`. Mutually exclusive with `parent_resource_id`.
#[serde(skip_serializing_if = "Option::is_none", default)]
pub parent_resource_external_id: Option<String>,
/// The resource type slug of the parent resource. Required with `parent_resource_external_id`. Mutually exclusive with `parent_resource_id`.
#[serde(skip_serializing_if = "Option::is_none", default)]
pub parent_resource_type_slug: Option<String>,
}