// 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 GenerateLink {
/// The URL to go to when an admin clicks on your logo in the Admin Portal. If not specified, the return URL configured on the [Redirects](https://dashboard.workos.com/redirects) page will be used.
#[serde(skip_serializing_if = "Option::is_none", default)]
pub return_url: Option<String>,
/// The URL to redirect the admin to when they finish setup. If not specified, the success URL configured on the [Redirects](https://dashboard.workos.com/redirects) page will be used.
#[serde(skip_serializing_if = "Option::is_none", default)]
pub success_url: Option<String>,
/// An [Organization](https://workos.com/docs/reference/organization) identifier.
pub organization: String,
/// The intent of the Admin Portal.
/// - `sso` - Launch Admin Portal for creating SSO connections
/// - `dsync` - Launch Admin Portal for creating Directory Sync connections
/// - `audit_logs` - Launch Admin Portal for viewing Audit Logs
/// - `log_streams` - Launch Admin Portal for creating Log Streams
/// - `domain_verification` - Launch Admin Portal for Domain Verification
/// - `certificate_renewal` - Launch Admin Portal for renewing SAML Certificates
/// - `bring_your_own_key` - Launch Admin Portal for configuring Bring Your Own Key
#[serde(skip_serializing_if = "Option::is_none", default)]
pub intent: Option<GenerateLinkIntent>,
/// Options to configure the Admin Portal based on the intent.
#[serde(skip_serializing_if = "Option::is_none", default)]
pub intent_options: Option<IntentOptions>,
/// The email addresses of the IT contacts to grant access to the Admin Portal for the given organization. Accepts up to 20 emails.
#[serde(skip_serializing_if = "Option::is_none", default)]
pub it_contact_emails: Option<Vec<String>>,
}