/* authentik Making authentication simple. API version: 2026.5.0-rc1 Contact: hello@goauthentik.io */ // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. package api import ( "encoding/json" "fmt" ) // checks if the TelegramSourceRequest type satisfies the MappedNullable interface at compile time var _ MappedNullable = &TelegramSourceRequest{} // TelegramSourceRequest Source Serializer type TelegramSourceRequest struct { // Source's display Name. Name string `json:"name"` // Internal source name, used in URLs. Slug string `json:"slug" validate:"regexp=^[-a-zA-Z0-9_]+$"` Enabled *bool `json:"enabled,omitempty"` // When enabled, this source will be displayed as a prominent button on the login page, instead of a small icon. Promoted *bool `json:"promoted,omitempty"` // Flow to use when authenticating existing users. AuthenticationFlow NullableString `json:"authentication_flow,omitempty"` // Flow to use when enrolling new users. EnrollmentFlow NullableString `json:"enrollment_flow,omitempty"` UserPropertyMappings []string `json:"user_property_mappings,omitempty"` GroupPropertyMappings []string `json:"group_property_mappings,omitempty"` PolicyEngineMode *PolicyEngineMode `json:"policy_engine_mode,omitempty"` // How the source determines if an existing user should be authenticated or a new user enrolled. UserMatchingMode *UserMatchingModeEnum `json:"user_matching_mode,omitempty"` UserPathTemplate *string `json:"user_path_template,omitempty"` Icon *string `json:"icon,omitempty"` // Telegram bot username BotUsername string `json:"bot_username"` // Telegram bot token BotToken string `json:"bot_token"` // Request access to send messages from your bot. RequestMessageAccess *bool `json:"request_message_access,omitempty"` // Flow used before authentication. PreAuthenticationFlow string `json:"pre_authentication_flow"` AdditionalProperties map[string]interface{} } type _TelegramSourceRequest TelegramSourceRequest // NewTelegramSourceRequest instantiates a new TelegramSourceRequest object // This constructor will assign default values to properties that have it defined, // and makes sure properties required by API are set, but the set of arguments // will change when the set of required properties is changed func NewTelegramSourceRequest(name string, slug string, botUsername string, botToken string, preAuthenticationFlow string) *TelegramSourceRequest { this := TelegramSourceRequest{} this.Name = name this.Slug = slug this.BotUsername = botUsername this.BotToken = botToken this.PreAuthenticationFlow = preAuthenticationFlow return &this } // NewTelegramSourceRequestWithDefaults instantiates a new TelegramSourceRequest object // This constructor will only assign default values to properties that have it defined, // but it doesn't guarantee that properties required by API are set func NewTelegramSourceRequestWithDefaults() *TelegramSourceRequest { this := TelegramSourceRequest{} return &this } // GetName returns the Name field value func (o *TelegramSourceRequest) GetName() string { if o == nil { var ret string return ret } return o.Name } // GetNameOk returns a tuple with the Name field value // and a boolean to check if the value has been set. func (o *TelegramSourceRequest) GetNameOk() (*string, bool) { if o == nil { return nil, false } return &o.Name, true } // SetName sets field value func (o *TelegramSourceRequest) SetName(v string) { o.Name = v } // GetSlug returns the Slug field value func (o *TelegramSourceRequest) GetSlug() string { if o == nil { var ret string return ret } return o.Slug } // GetSlugOk returns a tuple with the Slug field value // and a boolean to check if the value has been set. func (o *TelegramSourceRequest) GetSlugOk() (*string, bool) { if o == nil { return nil, false } return &o.Slug, true } // SetSlug sets field value func (o *TelegramSourceRequest) SetSlug(v string) { o.Slug = v } // GetEnabled returns the Enabled field value if set, zero value otherwise. func (o *TelegramSourceRequest) GetEnabled() bool { if o == nil || IsNil(o.Enabled) { var ret bool return ret } return *o.Enabled } // GetEnabledOk returns a tuple with the Enabled field value if set, nil otherwise // and a boolean to check if the value has been set. func (o *TelegramSourceRequest) GetEnabledOk() (*bool, bool) { if o == nil || IsNil(o.Enabled) { return nil, false } return o.Enabled, true } // HasEnabled returns a boolean if a field has been set. func (o *TelegramSourceRequest) HasEnabled() bool { if o != nil && !IsNil(o.Enabled) { return true } return false } // SetEnabled gets a reference to the given bool and assigns it to the Enabled field. func (o *TelegramSourceRequest) SetEnabled(v bool) { o.Enabled = &v } // GetPromoted returns the Promoted field value if set, zero value otherwise. func (o *TelegramSourceRequest) GetPromoted() bool { if o == nil || IsNil(o.Promoted) { var ret bool return ret } return *o.Promoted } // GetPromotedOk returns a tuple with the Promoted field value if set, nil otherwise // and a boolean to check if the value has been set. func (o *TelegramSourceRequest) GetPromotedOk() (*bool, bool) { if o == nil || IsNil(o.Promoted) { return nil, false } return o.Promoted, true } // HasPromoted returns a boolean if a field has been set. func (o *TelegramSourceRequest) HasPromoted() bool { if o != nil && !IsNil(o.Promoted) { return true } return false } // SetPromoted gets a reference to the given bool and assigns it to the Promoted field. func (o *TelegramSourceRequest) SetPromoted(v bool) { o.Promoted = &v } // GetAuthenticationFlow returns the AuthenticationFlow field value if set, zero value otherwise (both if not set or set to explicit null). func (o *TelegramSourceRequest) GetAuthenticationFlow() string { if o == nil || IsNil(o.AuthenticationFlow.Get()) { var ret string return ret } return *o.AuthenticationFlow.Get() } // GetAuthenticationFlowOk returns a tuple with the AuthenticationFlow field value if set, nil otherwise // and a boolean to check if the value has been set. // NOTE: If the value is an explicit nil, `nil, true` will be returned func (o *TelegramSourceRequest) GetAuthenticationFlowOk() (*string, bool) { if o == nil { return nil, false } return o.AuthenticationFlow.Get(), o.AuthenticationFlow.IsSet() } // HasAuthenticationFlow returns a boolean if a field has been set. func (o *TelegramSourceRequest) HasAuthenticationFlow() bool { if o != nil && o.AuthenticationFlow.IsSet() { return true } return false } // SetAuthenticationFlow gets a reference to the given NullableString and assigns it to the AuthenticationFlow field. func (o *TelegramSourceRequest) SetAuthenticationFlow(v string) { o.AuthenticationFlow.Set(&v) } // SetAuthenticationFlowNil sets the value for AuthenticationFlow to be an explicit nil func (o *TelegramSourceRequest) SetAuthenticationFlowNil() { o.AuthenticationFlow.Set(nil) } // UnsetAuthenticationFlow ensures that no value is present for AuthenticationFlow, not even an explicit nil func (o *TelegramSourceRequest) UnsetAuthenticationFlow() { o.AuthenticationFlow.Unset() } // GetEnrollmentFlow returns the EnrollmentFlow field value if set, zero value otherwise (both if not set or set to explicit null). func (o *TelegramSourceRequest) GetEnrollmentFlow() string { if o == nil || IsNil(o.EnrollmentFlow.Get()) { var ret string return ret } return *o.EnrollmentFlow.Get() } // GetEnrollmentFlowOk returns a tuple with the EnrollmentFlow field value if set, nil otherwise // and a boolean to check if the value has been set. // NOTE: If the value is an explicit nil, `nil, true` will be returned func (o *TelegramSourceRequest) GetEnrollmentFlowOk() (*string, bool) { if o == nil { return nil, false } return o.EnrollmentFlow.Get(), o.EnrollmentFlow.IsSet() } // HasEnrollmentFlow returns a boolean if a field has been set. func (o *TelegramSourceRequest) HasEnrollmentFlow() bool { if o != nil && o.EnrollmentFlow.IsSet() { return true } return false } // SetEnrollmentFlow gets a reference to the given NullableString and assigns it to the EnrollmentFlow field. func (o *TelegramSourceRequest) SetEnrollmentFlow(v string) { o.EnrollmentFlow.Set(&v) } // SetEnrollmentFlowNil sets the value for EnrollmentFlow to be an explicit nil func (o *TelegramSourceRequest) SetEnrollmentFlowNil() { o.EnrollmentFlow.Set(nil) } // UnsetEnrollmentFlow ensures that no value is present for EnrollmentFlow, not even an explicit nil func (o *TelegramSourceRequest) UnsetEnrollmentFlow() { o.EnrollmentFlow.Unset() } // GetUserPropertyMappings returns the UserPropertyMappings field value if set, zero value otherwise. func (o *TelegramSourceRequest) GetUserPropertyMappings() []string { if o == nil || IsNil(o.UserPropertyMappings) { var ret []string return ret } return o.UserPropertyMappings } // GetUserPropertyMappingsOk returns a tuple with the UserPropertyMappings field value if set, nil otherwise // and a boolean to check if the value has been set. func (o *TelegramSourceRequest) GetUserPropertyMappingsOk() ([]string, bool) { if o == nil || IsNil(o.UserPropertyMappings) { return nil, false } return o.UserPropertyMappings, true } // HasUserPropertyMappings returns a boolean if a field has been set. func (o *TelegramSourceRequest) HasUserPropertyMappings() bool { if o != nil && !IsNil(o.UserPropertyMappings) { return true } return false } // SetUserPropertyMappings gets a reference to the given []string and assigns it to the UserPropertyMappings field. func (o *TelegramSourceRequest) SetUserPropertyMappings(v []string) { o.UserPropertyMappings = v } // GetGroupPropertyMappings returns the GroupPropertyMappings field value if set, zero value otherwise. func (o *TelegramSourceRequest) GetGroupPropertyMappings() []string { if o == nil || IsNil(o.GroupPropertyMappings) { var ret []string return ret } return o.GroupPropertyMappings } // GetGroupPropertyMappingsOk returns a tuple with the GroupPropertyMappings field value if set, nil otherwise // and a boolean to check if the value has been set. func (o *TelegramSourceRequest) GetGroupPropertyMappingsOk() ([]string, bool) { if o == nil || IsNil(o.GroupPropertyMappings) { return nil, false } return o.GroupPropertyMappings, true } // HasGroupPropertyMappings returns a boolean if a field has been set. func (o *TelegramSourceRequest) HasGroupPropertyMappings() bool { if o != nil && !IsNil(o.GroupPropertyMappings) { return true } return false } // SetGroupPropertyMappings gets a reference to the given []string and assigns it to the GroupPropertyMappings field. func (o *TelegramSourceRequest) SetGroupPropertyMappings(v []string) { o.GroupPropertyMappings = v } // GetPolicyEngineMode returns the PolicyEngineMode field value if set, zero value otherwise. func (o *TelegramSourceRequest) GetPolicyEngineMode() PolicyEngineMode { if o == nil || IsNil(o.PolicyEngineMode) { var ret PolicyEngineMode return ret } return *o.PolicyEngineMode } // GetPolicyEngineModeOk returns a tuple with the PolicyEngineMode field value if set, nil otherwise // and a boolean to check if the value has been set. func (o *TelegramSourceRequest) GetPolicyEngineModeOk() (*PolicyEngineMode, bool) { if o == nil || IsNil(o.PolicyEngineMode) { return nil, false } return o.PolicyEngineMode, true } // HasPolicyEngineMode returns a boolean if a field has been set. func (o *TelegramSourceRequest) HasPolicyEngineMode() bool { if o != nil && !IsNil(o.PolicyEngineMode) { return true } return false } // SetPolicyEngineMode gets a reference to the given PolicyEngineMode and assigns it to the PolicyEngineMode field. func (o *TelegramSourceRequest) SetPolicyEngineMode(v PolicyEngineMode) { o.PolicyEngineMode = &v } // GetUserMatchingMode returns the UserMatchingMode field value if set, zero value otherwise. func (o *TelegramSourceRequest) GetUserMatchingMode() UserMatchingModeEnum { if o == nil || IsNil(o.UserMatchingMode) { var ret UserMatchingModeEnum return ret } return *o.UserMatchingMode } // GetUserMatchingModeOk returns a tuple with the UserMatchingMode field value if set, nil otherwise // and a boolean to check if the value has been set. func (o *TelegramSourceRequest) GetUserMatchingModeOk() (*UserMatchingModeEnum, bool) { if o == nil || IsNil(o.UserMatchingMode) { return nil, false } return o.UserMatchingMode, true } // HasUserMatchingMode returns a boolean if a field has been set. func (o *TelegramSourceRequest) HasUserMatchingMode() bool { if o != nil && !IsNil(o.UserMatchingMode) { return true } return false } // SetUserMatchingMode gets a reference to the given UserMatchingModeEnum and assigns it to the UserMatchingMode field. func (o *TelegramSourceRequest) SetUserMatchingMode(v UserMatchingModeEnum) { o.UserMatchingMode = &v } // GetUserPathTemplate returns the UserPathTemplate field value if set, zero value otherwise. func (o *TelegramSourceRequest) GetUserPathTemplate() string { if o == nil || IsNil(o.UserPathTemplate) { var ret string return ret } return *o.UserPathTemplate } // GetUserPathTemplateOk returns a tuple with the UserPathTemplate field value if set, nil otherwise // and a boolean to check if the value has been set. func (o *TelegramSourceRequest) GetUserPathTemplateOk() (*string, bool) { if o == nil || IsNil(o.UserPathTemplate) { return nil, false } return o.UserPathTemplate, true } // HasUserPathTemplate returns a boolean if a field has been set. func (o *TelegramSourceRequest) HasUserPathTemplate() bool { if o != nil && !IsNil(o.UserPathTemplate) { return true } return false } // SetUserPathTemplate gets a reference to the given string and assigns it to the UserPathTemplate field. func (o *TelegramSourceRequest) SetUserPathTemplate(v string) { o.UserPathTemplate = &v } // GetIcon returns the Icon field value if set, zero value otherwise. func (o *TelegramSourceRequest) GetIcon() string { if o == nil || IsNil(o.Icon) { var ret string return ret } return *o.Icon } // GetIconOk returns a tuple with the Icon field value if set, nil otherwise // and a boolean to check if the value has been set. func (o *TelegramSourceRequest) GetIconOk() (*string, bool) { if o == nil || IsNil(o.Icon) { return nil, false } return o.Icon, true } // HasIcon returns a boolean if a field has been set. func (o *TelegramSourceRequest) HasIcon() bool { if o != nil && !IsNil(o.Icon) { return true } return false } // SetIcon gets a reference to the given string and assigns it to the Icon field. func (o *TelegramSourceRequest) SetIcon(v string) { o.Icon = &v } // GetBotUsername returns the BotUsername field value func (o *TelegramSourceRequest) GetBotUsername() string { if o == nil { var ret string return ret } return o.BotUsername } // GetBotUsernameOk returns a tuple with the BotUsername field value // and a boolean to check if the value has been set. func (o *TelegramSourceRequest) GetBotUsernameOk() (*string, bool) { if o == nil { return nil, false } return &o.BotUsername, true } // SetBotUsername sets field value func (o *TelegramSourceRequest) SetBotUsername(v string) { o.BotUsername = v } // GetBotToken returns the BotToken field value func (o *TelegramSourceRequest) GetBotToken() string { if o == nil { var ret string return ret } return o.BotToken } // GetBotTokenOk returns a tuple with the BotToken field value // and a boolean to check if the value has been set. func (o *TelegramSourceRequest) GetBotTokenOk() (*string, bool) { if o == nil { return nil, false } return &o.BotToken, true } // SetBotToken sets field value func (o *TelegramSourceRequest) SetBotToken(v string) { o.BotToken = v } // GetRequestMessageAccess returns the RequestMessageAccess field value if set, zero value otherwise. func (o *TelegramSourceRequest) GetRequestMessageAccess() bool { if o == nil || IsNil(o.RequestMessageAccess) { var ret bool return ret } return *o.RequestMessageAccess } // GetRequestMessageAccessOk returns a tuple with the RequestMessageAccess field value if set, nil otherwise // and a boolean to check if the value has been set. func (o *TelegramSourceRequest) GetRequestMessageAccessOk() (*bool, bool) { if o == nil || IsNil(o.RequestMessageAccess) { return nil, false } return o.RequestMessageAccess, true } // HasRequestMessageAccess returns a boolean if a field has been set. func (o *TelegramSourceRequest) HasRequestMessageAccess() bool { if o != nil && !IsNil(o.RequestMessageAccess) { return true } return false } // SetRequestMessageAccess gets a reference to the given bool and assigns it to the RequestMessageAccess field. func (o *TelegramSourceRequest) SetRequestMessageAccess(v bool) { o.RequestMessageAccess = &v } // GetPreAuthenticationFlow returns the PreAuthenticationFlow field value func (o *TelegramSourceRequest) GetPreAuthenticationFlow() string { if o == nil { var ret string return ret } return o.PreAuthenticationFlow } // GetPreAuthenticationFlowOk returns a tuple with the PreAuthenticationFlow field value // and a boolean to check if the value has been set. func (o *TelegramSourceRequest) GetPreAuthenticationFlowOk() (*string, bool) { if o == nil { return nil, false } return &o.PreAuthenticationFlow, true } // SetPreAuthenticationFlow sets field value func (o *TelegramSourceRequest) SetPreAuthenticationFlow(v string) { o.PreAuthenticationFlow = v } func (o TelegramSourceRequest) MarshalJSON() ([]byte, error) { toSerialize, err := o.ToMap() if err != nil { return []byte{}, err } return json.Marshal(toSerialize) } func (o TelegramSourceRequest) ToMap() (map[string]interface{}, error) { toSerialize := map[string]interface{}{} toSerialize["name"] = o.Name toSerialize["slug"] = o.Slug if !IsNil(o.Enabled) { toSerialize["enabled"] = o.Enabled } if !IsNil(o.Promoted) { toSerialize["promoted"] = o.Promoted } if o.AuthenticationFlow.IsSet() { toSerialize["authentication_flow"] = o.AuthenticationFlow.Get() } if o.EnrollmentFlow.IsSet() { toSerialize["enrollment_flow"] = o.EnrollmentFlow.Get() } if !IsNil(o.UserPropertyMappings) { toSerialize["user_property_mappings"] = o.UserPropertyMappings } if !IsNil(o.GroupPropertyMappings) { toSerialize["group_property_mappings"] = o.GroupPropertyMappings } if !IsNil(o.PolicyEngineMode) { toSerialize["policy_engine_mode"] = o.PolicyEngineMode } if !IsNil(o.UserMatchingMode) { toSerialize["user_matching_mode"] = o.UserMatchingMode } if !IsNil(o.UserPathTemplate) { toSerialize["user_path_template"] = o.UserPathTemplate } if !IsNil(o.Icon) { toSerialize["icon"] = o.Icon } toSerialize["bot_username"] = o.BotUsername toSerialize["bot_token"] = o.BotToken if !IsNil(o.RequestMessageAccess) { toSerialize["request_message_access"] = o.RequestMessageAccess } toSerialize["pre_authentication_flow"] = o.PreAuthenticationFlow for key, value := range o.AdditionalProperties { toSerialize[key] = value } return toSerialize, nil } func (o *TelegramSourceRequest) UnmarshalJSON(data []byte) (err error) { // This validates that all required properties are included in the JSON object // by unmarshalling the object into a generic map with string keys and checking // that every required field exists as a key in the generic map. requiredProperties := []string{ "name", "slug", "bot_username", "bot_token", "pre_authentication_flow", } allProperties := make(map[string]interface{}) err = json.Unmarshal(data, &allProperties) if err != nil { return err } for _, requiredProperty := range requiredProperties { if _, exists := allProperties[requiredProperty]; !exists { return fmt.Errorf("no value given for required property %v", requiredProperty) } } varTelegramSourceRequest := _TelegramSourceRequest{} err = json.Unmarshal(data, &varTelegramSourceRequest) if err != nil { return err } *o = TelegramSourceRequest(varTelegramSourceRequest) additionalProperties := make(map[string]interface{}) if err = json.Unmarshal(data, &additionalProperties); err == nil { delete(additionalProperties, "name") delete(additionalProperties, "slug") delete(additionalProperties, "enabled") delete(additionalProperties, "promoted") delete(additionalProperties, "authentication_flow") delete(additionalProperties, "enrollment_flow") delete(additionalProperties, "user_property_mappings") delete(additionalProperties, "group_property_mappings") delete(additionalProperties, "policy_engine_mode") delete(additionalProperties, "user_matching_mode") delete(additionalProperties, "user_path_template") delete(additionalProperties, "icon") delete(additionalProperties, "bot_username") delete(additionalProperties, "bot_token") delete(additionalProperties, "request_message_access") delete(additionalProperties, "pre_authentication_flow") o.AdditionalProperties = additionalProperties } return err } type NullableTelegramSourceRequest struct { value *TelegramSourceRequest isSet bool } func (v NullableTelegramSourceRequest) Get() *TelegramSourceRequest { return v.value } func (v *NullableTelegramSourceRequest) Set(val *TelegramSourceRequest) { v.value = val v.isSet = true } func (v NullableTelegramSourceRequest) IsSet() bool { return v.isSet } func (v *NullableTelegramSourceRequest) Unset() { v.value = nil v.isSet = false } func NewNullableTelegramSourceRequest(val *TelegramSourceRequest) *NullableTelegramSourceRequest { return &NullableTelegramSourceRequest{value: val, isSet: true} } func (v NullableTelegramSourceRequest) MarshalJSON() ([]byte, error) { return json.Marshal(v.value) } func (v *NullableTelegramSourceRequest) UnmarshalJSON(src []byte) error { v.isSet = true return json.Unmarshal(src, &v.value) }