billinggroup

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Feb 20, 2024 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BillingCurrencyTypeChoices

func BillingCurrencyTypeChoices() []string

Types

type BillingCurrencyType

type BillingCurrencyType string
const (
	BillingCurrencyTypeAud BillingCurrencyType = "AUD"
	BillingCurrencyTypeCad BillingCurrencyType = "CAD"
	BillingCurrencyTypeChf BillingCurrencyType = "CHF"
	BillingCurrencyTypeDkk BillingCurrencyType = "DKK"
	BillingCurrencyTypeEur BillingCurrencyType = "EUR"
	BillingCurrencyTypeGbp BillingCurrencyType = "GBP"
	BillingCurrencyTypeJpy BillingCurrencyType = "JPY"
	BillingCurrencyTypeNok BillingCurrencyType = "NOK"
	BillingCurrencyTypeNzd BillingCurrencyType = "NZD"
	BillingCurrencyTypeSek BillingCurrencyType = "SEK"
	BillingCurrencyTypeSgd BillingCurrencyType = "SGD"
	BillingCurrencyTypeUsd BillingCurrencyType = "USD"
)

type BillingEmailIn

type BillingEmailIn struct {
	Email string `json:"email"`
}

type BillingEmailOut

type BillingEmailOut struct {
	Email string `json:"email"`
}

type BillingGroupCreateIn

type BillingGroupCreateIn struct {
	AccountId            string              `json:"account_id,omitempty"`
	AddressLines         *[]string           `json:"address_lines,omitempty"`
	BillingCurrency      BillingCurrencyType `json:"billing_currency,omitempty"`
	BillingEmails        *[]BillingEmailIn   `json:"billing_emails,omitempty"`
	BillingExtraText     string              `json:"billing_extra_text,omitempty"`
	BillingGroupName     string              `json:"billing_group_name"`
	CardId               string              `json:"card_id,omitempty"`
	City                 string              `json:"city,omitempty"`
	Company              string              `json:"company,omitempty"`
	CopyFromBillingGroup string              `json:"copy_from_billing_group,omitempty"`
	CountryCode          string              `json:"country_code,omitempty"`
	State                string              `json:"state,omitempty"`
	VatId                string              `json:"vat_id,omitempty"`
	ZipCode              string              `json:"zip_code,omitempty"`
}

type BillingGroupCreateOut

type BillingGroupCreateOut struct {
	AccountId             string            `json:"account_id"`
	AccountName           string            `json:"account_name"`
	AddressLines          []string          `json:"address_lines"`
	BillingAddress        string            `json:"billing_address,omitempty"`
	BillingCurrency       string            `json:"billing_currency"`
	BillingEmails         []BillingEmailOut `json:"billing_emails"`
	BillingExtraText      string            `json:"billing_extra_text"`
	BillingGroupId        string            `json:"billing_group_id"`
	BillingGroupName      string            `json:"billing_group_name"`
	CardInfo              CardInfoOut       `json:"card_info"`
	City                  string            `json:"city"`
	Company               string            `json:"company"`
	Country               string            `json:"country"`
	CountryCode           string            `json:"country_code"`
	EstimatedBalanceLocal string            `json:"estimated_balance_local"`
	EstimatedBalanceUsd   string            `json:"estimated_balance_usd"`
	PaymentMethod         string            `json:"payment_method"`
	State                 string            `json:"state"`
	VatId                 string            `json:"vat_id"`
	ZipCode               string            `json:"zip_code"`
}

type BillingGroupCreditsClaimIn

type BillingGroupCreditsClaimIn struct {
	Code string `json:"code"`
}

type BillingGroupCreditsClaimOut

type BillingGroupCreditsClaimOut struct {
	Code           string     `json:"code,omitempty"`
	ExpireTime     *time.Time `json:"expire_time,omitempty"`
	RemainingValue string     `json:"remaining_value,omitempty"`
	StartTime      *time.Time `json:"start_time,omitempty"`
	Type           string     `json:"type,omitempty"`
	Value          string     `json:"value,omitempty"`
}

type BillingGroupGetOut

type BillingGroupGetOut struct {
	AccountId             string            `json:"account_id"`
	AccountName           string            `json:"account_name"`
	AddressLines          []string          `json:"address_lines"`
	BillingAddress        string            `json:"billing_address,omitempty"`
	BillingCurrency       string            `json:"billing_currency"`
	BillingEmails         []BillingEmailOut `json:"billing_emails"`
	BillingExtraText      string            `json:"billing_extra_text"`
	BillingGroupId        string            `json:"billing_group_id"`
	BillingGroupName      string            `json:"billing_group_name"`
	CardInfo              CardInfoOut       `json:"card_info"`
	City                  string            `json:"city"`
	Company               string            `json:"company"`
	Country               string            `json:"country"`
	CountryCode           string            `json:"country_code"`
	EstimatedBalanceLocal string            `json:"estimated_balance_local"`
	EstimatedBalanceUsd   string            `json:"estimated_balance_usd"`
	PaymentMethod         string            `json:"payment_method"`
	State                 string            `json:"state"`
	VatId                 string            `json:"vat_id"`
	ZipCode               string            `json:"zip_code"`
}

type BillingGroupHandler

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

func NewHandler

func NewHandler(doer doer) BillingGroupHandler

func (*BillingGroupHandler) BillingGroupCreate

func (*BillingGroupHandler) BillingGroupCreditsClaim

func (h *BillingGroupHandler) BillingGroupCreditsClaim(ctx context.Context, billingGroupId string, in *BillingGroupCreditsClaimIn) (*BillingGroupCreditsClaimOut, error)

func (*BillingGroupHandler) BillingGroupCreditsList

func (h *BillingGroupHandler) BillingGroupCreditsList(ctx context.Context, billingGroupId string) ([]CreditOut, error)

func (*BillingGroupHandler) BillingGroupDelete

func (h *BillingGroupHandler) BillingGroupDelete(ctx context.Context, billingGroupId string) error

func (*BillingGroupHandler) BillingGroupEventList

func (h *BillingGroupHandler) BillingGroupEventList(ctx context.Context, billingGroupId string) ([]EventOut, error)

func (*BillingGroupHandler) BillingGroupGet

func (h *BillingGroupHandler) BillingGroupGet(ctx context.Context, billingGroupId string) (*BillingGroupGetOut, error)

func (*BillingGroupHandler) BillingGroupInvoiceLinesList

func (h *BillingGroupHandler) BillingGroupInvoiceLinesList(ctx context.Context, billingGroupId string, invoiceNumber string) ([]LineOut, error)

func (*BillingGroupHandler) BillingGroupInvoiceList

func (h *BillingGroupHandler) BillingGroupInvoiceList(ctx context.Context, billingGroupId string) ([]InvoiceOut, error)

func (*BillingGroupHandler) BillingGroupList

func (h *BillingGroupHandler) BillingGroupList(ctx context.Context) ([]BillingGroupOut, error)

func (*BillingGroupHandler) BillingGroupProjectAssign

func (h *BillingGroupHandler) BillingGroupProjectAssign(ctx context.Context, billingGroupId string, project string) error

func (*BillingGroupHandler) BillingGroupProjectList

func (h *BillingGroupHandler) BillingGroupProjectList(ctx context.Context, billingGroupId string) ([]ProjectOut, error)

func (*BillingGroupHandler) BillingGroupProjectsAssign

func (h *BillingGroupHandler) BillingGroupProjectsAssign(ctx context.Context, billingGroupId string, in *BillingGroupProjectsAssignIn) error

func (*BillingGroupHandler) BillingGroupUpdate

func (h *BillingGroupHandler) BillingGroupUpdate(ctx context.Context, billingGroupId string, in *BillingGroupUpdateIn) (*BillingGroupUpdateOut, error)

type BillingGroupOut

type BillingGroupOut struct {
	AccountId             string            `json:"account_id"`
	AccountName           string            `json:"account_name"`
	AddressLines          []string          `json:"address_lines"`
	BillingAddress        string            `json:"billing_address,omitempty"`
	BillingCurrency       string            `json:"billing_currency"`
	BillingEmails         []BillingEmailOut `json:"billing_emails"`
	BillingExtraText      string            `json:"billing_extra_text"`
	BillingGroupId        string            `json:"billing_group_id"`
	BillingGroupName      string            `json:"billing_group_name"`
	CardInfo              CardInfoOut       `json:"card_info"`
	City                  string            `json:"city"`
	Company               string            `json:"company"`
	Country               string            `json:"country"`
	CountryCode           string            `json:"country_code"`
	EstimatedBalanceLocal string            `json:"estimated_balance_local"`
	EstimatedBalanceUsd   string            `json:"estimated_balance_usd"`
	PaymentMethod         string            `json:"payment_method"`
	State                 string            `json:"state"`
	VatId                 string            `json:"vat_id"`
	ZipCode               string            `json:"zip_code"`
}

type BillingGroupProjectsAssignIn

type BillingGroupProjectsAssignIn struct {
	ProjectsNames []string `json:"projects_names"`
}

type BillingGroupUpdateIn

type BillingGroupUpdateIn struct {
	AccountId        string              `json:"account_id,omitempty"`
	AddressLines     *[]string           `json:"address_lines,omitempty"`
	BillingCurrency  BillingCurrencyType `json:"billing_currency,omitempty"`
	BillingEmails    *[]BillingEmailIn   `json:"billing_emails,omitempty"`
	BillingExtraText string              `json:"billing_extra_text,omitempty"`
	BillingGroupName string              `json:"billing_group_name,omitempty"`
	CardId           string              `json:"card_id,omitempty"`
	City             string              `json:"city,omitempty"`
	Company          string              `json:"company,omitempty"`
	CountryCode      string              `json:"country_code,omitempty"`
	State            string              `json:"state,omitempty"`
	VatId            string              `json:"vat_id,omitempty"`
	ZipCode          string              `json:"zip_code,omitempty"`
}

type BillingGroupUpdateOut

type BillingGroupUpdateOut struct {
	AccountId             string            `json:"account_id"`
	AccountName           string            `json:"account_name"`
	AddressLines          []string          `json:"address_lines"`
	BillingAddress        string            `json:"billing_address,omitempty"`
	BillingCurrency       string            `json:"billing_currency"`
	BillingEmails         []BillingEmailOut `json:"billing_emails"`
	BillingExtraText      string            `json:"billing_extra_text"`
	BillingGroupId        string            `json:"billing_group_id"`
	BillingGroupName      string            `json:"billing_group_name"`
	CardInfo              CardInfoOut       `json:"card_info"`
	City                  string            `json:"city"`
	Company               string            `json:"company"`
	Country               string            `json:"country"`
	CountryCode           string            `json:"country_code"`
	EstimatedBalanceLocal string            `json:"estimated_balance_local"`
	EstimatedBalanceUsd   string            `json:"estimated_balance_usd"`
	PaymentMethod         string            `json:"payment_method"`
	State                 string            `json:"state"`
	VatId                 string            `json:"vat_id"`
	ZipCode               string            `json:"zip_code"`
}

type CardInfoOut

type CardInfoOut struct {
	Brand       string `json:"brand"`
	CardId      string `json:"card_id"`
	Country     string `json:"country"`
	CountryCode string `json:"country_code"`
	ExpMonth    int    `json:"exp_month"`
	ExpYear     int    `json:"exp_year"`
	Last4       string `json:"last4"`
	Name        string `json:"name"`
	UserEmail   string `json:"user_email"`
}

type CreditOut

type CreditOut struct {
	Code           string     `json:"code,omitempty"`
	ExpireTime     *time.Time `json:"expire_time,omitempty"`
	RemainingValue string     `json:"remaining_value,omitempty"`
	StartTime      *time.Time `json:"start_time,omitempty"`
	Type           string     `json:"type,omitempty"`
	Value          string     `json:"value,omitempty"`
}

type EventOut

type EventOut struct {
	Actor          string     `json:"actor,omitempty"`
	BillingGroupId string     `json:"billing_group_id,omitempty"`
	CreateTime     *time.Time `json:"create_time,omitempty"`
	EventDesc      string     `json:"event_desc,omitempty"`
	EventType      string     `json:"event_type,omitempty"`
	LogEntryId     *int       `json:"log_entry_id,omitempty"`
	ProjectId      string     `json:"project_id,omitempty"`
	ProjectName    string     `json:"project_name,omitempty"`
}

type Handler

type Handler interface {
	// BillingGroupCreate create a billing group
	// POST /billing-group
	// https://api.aiven.io/doc/#tag/BillingGroup/operation/BillingGroupCreate
	BillingGroupCreate(ctx context.Context, in *BillingGroupCreateIn) (*BillingGroupCreateOut, error)

	// BillingGroupCreditsClaim claim a credit code
	// POST /billing-group/{billing_group_id}/credits
	// https://api.aiven.io/doc/#tag/BillingGroup/operation/BillingGroupCreditsClaim
	BillingGroupCreditsClaim(ctx context.Context, billingGroupId string, in *BillingGroupCreditsClaimIn) (*BillingGroupCreditsClaimOut, error)

	// BillingGroupCreditsList list billing group credits
	// GET /billing-group/{billing_group_id}/credits
	// https://api.aiven.io/doc/#tag/BillingGroup/operation/BillingGroupCreditsList
	BillingGroupCreditsList(ctx context.Context, billingGroupId string) ([]CreditOut, error)

	// BillingGroupDelete delete billing group
	// DELETE /billing-group/{billing_group_id}
	// https://api.aiven.io/doc/#tag/BillingGroup/operation/BillingGroupDelete
	BillingGroupDelete(ctx context.Context, billingGroupId string) error

	// BillingGroupEventList list billing group events
	// GET /billing-group/{billing_group_id}/events
	// https://api.aiven.io/doc/#tag/BillingGroup/operation/BillingGroupEventList
	BillingGroupEventList(ctx context.Context, billingGroupId string) ([]EventOut, error)

	// BillingGroupGet get billing group details
	// GET /billing-group/{billing_group_id}
	// https://api.aiven.io/doc/#tag/BillingGroup/operation/BillingGroupGet
	BillingGroupGet(ctx context.Context, billingGroupId string) (*BillingGroupGetOut, error)

	// BillingGroupInvoiceLinesList get invoice lines for a single invoice
	// GET /billing-group/{billing_group_id}/invoice/{invoice_number}/lines
	// https://api.aiven.io/doc/#tag/BillingGroup/operation/BillingGroupInvoiceLinesList
	BillingGroupInvoiceLinesList(ctx context.Context, billingGroupId string, invoiceNumber string) ([]LineOut, error)

	// BillingGroupInvoiceList get invoices generated for billing group
	// GET /billing-group/{billing_group_id}/invoice
	// https://api.aiven.io/doc/#tag/BillingGroup/operation/BillingGroupInvoiceList
	BillingGroupInvoiceList(ctx context.Context, billingGroupId string) ([]InvoiceOut, error)

	// BillingGroupList list billing groups
	// GET /billing-group
	// https://api.aiven.io/doc/#tag/BillingGroup/operation/BillingGroupList
	BillingGroupList(ctx context.Context) ([]BillingGroupOut, error)

	// BillingGroupProjectAssign assign project to billing group
	// POST /billing-group/{billing_group_id}/project-assign/{project}
	// https://api.aiven.io/doc/#tag/BillingGroup/operation/BillingGroupProjectAssign
	BillingGroupProjectAssign(ctx context.Context, billingGroupId string, project string) error

	// BillingGroupProjectList get projects assigned to billing group
	// GET /billing-group/{billing_group_id}/projects
	// https://api.aiven.io/doc/#tag/BillingGroup/operation/BillingGroupProjectList
	BillingGroupProjectList(ctx context.Context, billingGroupId string) ([]ProjectOut, error)

	// BillingGroupProjectsAssign assign projects to billing group
	// POST /billing-group/{billing_group_id}/projects-assign
	// https://api.aiven.io/doc/#tag/BillingGroup/operation/BillingGroupProjectsAssign
	BillingGroupProjectsAssign(ctx context.Context, billingGroupId string, in *BillingGroupProjectsAssignIn) error

	// BillingGroupUpdate update billing group
	// PUT /billing-group/{billing_group_id}
	// https://api.aiven.io/doc/#tag/BillingGroup/operation/BillingGroupUpdate
	BillingGroupUpdate(ctx context.Context, billingGroupId string, in *BillingGroupUpdateIn) (*BillingGroupUpdateOut, error)
}

type InvoiceOut

type InvoiceOut struct {
	BillingGroupId    string     `json:"billing_group_id"`
	BillingGroupName  string     `json:"billing_group_name"`
	BillingGroupState string     `json:"billing_group_state"`
	Currency          string     `json:"currency"`
	DownloadCookie    string     `json:"download_cookie"`
	GeneratedAt       *time.Time `json:"generated_at,omitempty"`
	InvoiceNumber     string     `json:"invoice_number"`
	PeriodBegin       string     `json:"period_begin"`
	PeriodEnd         string     `json:"period_end"`
	State             string     `json:"state"`
	TotalIncVat       string     `json:"total_inc_vat"`
	TotalVatZero      string     `json:"total_vat_zero"`
}

type LineOut

type LineOut struct {
	CloudName            string            `json:"cloud_name,omitempty"`
	CommitmentName       string            `json:"commitment_name,omitempty"`
	Description          string            `json:"description"`
	LinePreDiscountLocal string            `json:"line_pre_discount_local,omitempty"`
	LineTotalLocal       string            `json:"line_total_local,omitempty"`
	LineTotalUsd         string            `json:"line_total_usd"`
	LineType             string            `json:"line_type"`
	LocalCurrency        string            `json:"local_currency,omitempty"`
	ProjectName          string            `json:"project_name,omitempty"`
	ServiceName          string            `json:"service_name,omitempty"`
	ServicePlan          string            `json:"service_plan,omitempty"`
	ServiceType          string            `json:"service_type,omitempty"`
	Tags                 map[string]string `json:"tags,omitempty"`
	TimestampBegin       string            `json:"timestamp_begin,omitempty"`
	TimestampEnd         string            `json:"timestamp_end,omitempty"`
}

type ProjectOut

type ProjectOut struct {
	AvailableCredits string `json:"available_credits"`
	EstimatedBalance string `json:"estimated_balance"`
	ProjectName      string `json:"project_name"`
}

Jump to

Keyboard shortcuts

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