provider

package
v0.0.0-...-c1bf3d6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 5, 2025 License: MIT Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New(version string) func() provider.Provider

func NewDomainDataSource

func NewDomainDataSource() datasource.DataSource

func NewDomainResource

func NewDomainResource() resource.Resource

func NewSocialProviderResource

func NewSocialProviderResource() resource.Resource

Types

type APIError

type APIError struct {
	Status  int
	Code    string
	Message string
	Details string
}

func (*APIError) Error

func (e *APIError) Error() string

type APIErrorResponse

type APIErrorResponse struct {
	Error struct {
		Status  int    `json:"status"`
		Code    string `json:"code"`
		Message string `json:"message"`
		Details string `json:"details,omitempty"`
	} `json:"error"`
}

type AuthavaProvider

type AuthavaProvider struct {
	// contains filtered or unexported fields
}

func (*AuthavaProvider) Configure

func (*AuthavaProvider) DataSources

func (p *AuthavaProvider) DataSources(_ context.Context) []func() datasource.DataSource

func (*AuthavaProvider) Metadata

func (*AuthavaProvider) Resources

func (p *AuthavaProvider) Resources(_ context.Context) []func() resource.Resource

func (*AuthavaProvider) Schema

type AuthavaProviderModel

type AuthavaProviderModel struct {
	APIToken types.String `tfsdk:"api_token"`
	Host     types.String `tfsdk:"host"`
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(host string, apiToken string) *Client

func (*Client) CreateDomain

func (c *Client) CreateDomain(domain string) (*Domain, error)

CreateDomain creates a new domain

func (*Client) CreateSocialProvider

func (c *Client) CreateSocialProvider(domainID string, provider *SocialProvider) (*SocialProvider, error)

CreateSocialProvider creates a new social provider for a domain

func (*Client) DeleteDomain

func (c *Client) DeleteDomain(id string) error

DeleteDomain deletes a domain by ID

func (*Client) DeleteSocialProvider

func (c *Client) DeleteSocialProvider(domainID, providerID string) error

DeleteSocialProvider deletes a social provider by ID

func (*Client) GetDomain

func (c *Client) GetDomain(id string) (*Domain, error)

GetDomain retrieves a domain by ID

func (*Client) GetEmailSettings

func (c *Client) GetEmailSettings(domainID string) (*EmailSettings, error)

GetEmailSettings retrieves email settings for a domain

func (*Client) GetSocialProvider

func (c *Client) GetSocialProvider(domainID, providerID string) (*SocialProvider, error)

GetSocialProvider retrieves a social provider by ID

func (*Client) GetWhitelabelSettings

func (c *Client) GetWhitelabelSettings(domainID string) (*WhitelabelSettings, error)

GetWhitelabelSettings retrieves whitelabel settings for a domain

func (*Client) ListOrigins

func (c *Client) ListOrigins(domainID string) ([]string, error)

ListOrigins retrieves all origins for a domain

func (*Client) SyncOrigins

func (c *Client) SyncOrigins(domainID string, origins []string) error

func (*Client) UpdateEmailSettings

func (c *Client) UpdateEmailSettings(domainID string, settings *EmailSettings) (*EmailSettings, error)

UpdateEmailSettings updates email settings for a domain

func (*Client) UpdateSocialProvider

func (c *Client) UpdateSocialProvider(domainID string, provider *SocialProvider) error

UpdateSocialProvider updates a social provider

func (*Client) UpdateWhitelabelSettings

func (c *Client) UpdateWhitelabelSettings(domainID string, settings *WhitelabelSettings) error

UpdateWhitelabelSettings updates whitelabel settings for a domain

func (*Client) VerifyEmailSettings

func (c *Client) VerifyEmailSettings(domainID string) error

VerifyEmailSettings triggers DNS verification for a domain's email settings

type Domain

type Domain struct {
	ID        string    `json:"id"`
	Domain    string    `json:"domain"`
	Status    string    `json:"status"`
	UserID    string    `json:"user_id"`
	CreatedAt time.Time `json:"created_at"`
	UpdatedAt time.Time `json:"updated_at"`
}

Domain represents an Authava domain

type DomainDataSource

type DomainDataSource struct {
	// contains filtered or unexported fields
}

func (*DomainDataSource) Configure

func (*DomainDataSource) Metadata

func (*DomainDataSource) Read

func (*DomainDataSource) Schema

type DomainDataSourceModel

type DomainDataSourceModel struct {
	ID        types.String `tfsdk:"id"`
	Domain    types.String `tfsdk:"domain"`
	Status    types.String `tfsdk:"status"`
	UserID    types.String `tfsdk:"user_id"`
	CreatedAt types.String `tfsdk:"created_at"`
	UpdatedAt types.String `tfsdk:"updated_at"`
}

type DomainResource

type DomainResource struct {
	// contains filtered or unexported fields
}

func (*DomainResource) Configure

func (*DomainResource) Create

Create domain and email settings together

func (*DomainResource) Delete

func (*DomainResource) ImportState

func (*DomainResource) Metadata

func (*DomainResource) Read

func (*DomainResource) Schema

func (*DomainResource) Update

type DomainResourceModel

type DomainResourceModel struct {
	ID        types.String `tfsdk:"id"`
	Domain    types.String `tfsdk:"domain"`
	Status    types.String `tfsdk:"status"`
	UserID    types.String `tfsdk:"user_id"`
	CreatedAt types.String `tfsdk:"created_at"`
	UpdatedAt types.String `tfsdk:"updated_at"`

	// Email settings
	EmailProvider     types.String     `tfsdk:"email_provider"`
	FromEmail         types.String     `tfsdk:"from_email"`
	FromName          types.String     `tfsdk:"from_name"`
	Theme             types.Object     `tfsdk:"email_theme"`
	SMTP              *SMTPConfigModel `tfsdk:"smtp"`
	DKIMTokens        types.List       `tfsdk:"dkim_tokens"`
	VerificationToken types.String     `tfsdk:"verification_token"`

	// Origins
	Origins types.List `tfsdk:"origins"`

	// Whitelabel settings
	CompanyName    types.String `tfsdk:"company_name"`
	LogoURL        types.String `tfsdk:"logo_url"`
	FaviconURL     types.String `tfsdk:"favicon_url"`
	PrimaryColor   types.String `tfsdk:"primary_color"`
	SecondaryColor types.String `tfsdk:"secondary_color"`
	FooterText     types.String `tfsdk:"footer_text"`
	TermsURL       types.String `tfsdk:"terms_url"`
	PrivacyURL     types.String `tfsdk:"privacy_url"`
}

type EmailSettings

type EmailSettings struct {
	EmailProvider     string      `json:"provider"`
	FromEmail         string      `json:"from_email"`
	FromName          string      `json:"from_name,omitempty"`
	Theme             *EmailTheme `json:"theme,omitempty"`
	SMTP              *SMTPConfig `json:"smtp,omitempty"`
	DKIMTokens        []string    `json:"dkim_tokens,omitempty"`
	VerificationToken string      `json:"verification_token,omitempty"`
}

EmailSettings represents email configuration for a domain

type EmailTheme

type EmailTheme struct {
	Style          string `json:"style,omitempty"`
	BrandColor     string `json:"brandColor,omitempty"`
	SecondaryColor string `json:"secondaryColor,omitempty"`
	ButtonStyle    string `json:"buttonStyle,omitempty"`
	FontFamily     string `json:"fontFamily,omitempty"`
	CustomCSS      string `json:"customCss,omitempty"`
}

type EmailThemeModel

type EmailThemeModel struct {
	Style          types.String `tfsdk:"style"`
	BrandColor     types.String `tfsdk:"brand_color"`
	SecondaryColor types.String `tfsdk:"secondary_color"`
	ButtonStyle    types.String `tfsdk:"button_style"`
	FontFamily     types.String `tfsdk:"font_family"`
	CustomCSS      types.String `tfsdk:"custom_css"`
}

EmailThemeModel represents the email theme configuration

type Origin

type Origin struct {
	ID        string    `json:"id"`
	DomainID  string    `json:"domain_id"`
	Origin    string    `json:"origin"`
	IsActive  bool      `json:"is_active"`
	CreatedAt time.Time `json:"created_at"`
	UpdatedAt time.Time `json:"updated_at"`
}

Origin represents a CORS origin configuration

type SMTPConfig

type SMTPConfig struct {
	Host       string `json:"host"`
	Port       int    `json:"port"`
	Username   string `json:"username"`
	Password   string `json:"password"`
	Encryption string `json:"encryption"`
	IsActive   bool   `json:"is_active"`
}

type SMTPConfigModel

type SMTPConfigModel struct {
	Host       types.String `tfsdk:"host"`
	Port       types.Int64  `tfsdk:"port"`
	Username   types.String `tfsdk:"username"`
	Password   types.String `tfsdk:"password"`
	Encryption types.String `tfsdk:"encryption"`
	IsActive   types.Bool   `tfsdk:"is_active"`
}

func (*SMTPConfigModel) Equal

func (s *SMTPConfigModel) Equal(other *SMTPConfigModel) bool

type SocialProvider

type SocialProvider struct {
	ID           string    `json:"id"`
	AuthProvider string    `json:"provider_type"`
	ClientID     string    `json:"client_id"`
	ClientSecret string    `json:"client_secret"`
	IsActive     bool      `json:"is_active"`
	CreatedAt    time.Time `json:"created_at"`
	UpdatedAt    time.Time `json:"updated_at"`
}

SocialProvider represents a social login provider configuration

type SocialProviderResource

type SocialProviderResource struct {
	// contains filtered or unexported fields
}

func (*SocialProviderResource) Configure

func (*SocialProviderResource) Create

func (*SocialProviderResource) Delete

func (*SocialProviderResource) ImportState

func (*SocialProviderResource) Metadata

func (*SocialProviderResource) Read

func (*SocialProviderResource) Schema

func (*SocialProviderResource) Update

type SocialProviderResourceModel

type SocialProviderResourceModel struct {
	ID           types.String `tfsdk:"id"`
	DomainID     types.String `tfsdk:"domain_id"`
	AuthProvider types.String `tfsdk:"auth_provider"`
	ClientID     types.String `tfsdk:"client_id"`
	ClientSecret types.String `tfsdk:"client_secret"`
	IsActive     types.Bool   `tfsdk:"is_active"`
	CreatedAt    types.String `tfsdk:"created_at"`
	UpdatedAt    types.String `tfsdk:"updated_at"`
}

type WhitelabelSettings

type WhitelabelSettings struct {
	CompanyName    string `json:"company_name,omitempty"`
	LogoURL        string `json:"logo_url,omitempty"`
	FaviconURL     string `json:"favicon_url,omitempty"`
	PrimaryColor   string `json:"primary_color,omitempty"`
	SecondaryColor string `json:"secondary_color,omitempty"`
	FooterText     string `json:"footer_text,omitempty"`
	TermsURL       string `json:"terms_url,omitempty"`
	PrivacyURL     string `json:"privacy_url,omitempty"`
}

WhitelabelSettings represents whitelabel configuration

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL