openapi

package
v0.0.0-...-06740f6 Latest Latest
Warning

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

Go to latest
Published: Aug 26, 2026 License: MIT Imports: 5 Imported by: 0

README

OpenAPI Definitions

This package contains Go types generated from the Ampersand OpenAPI spec (api/api.yaml) defined in https://github.com/amp-labs/openapi.

Generated files

  • api.gen.go — Go types generated from the components/schemas in api/api.yaml.
  • commit.json — the openapi commit these types were generated from.

Automation

These types are kept in sync automatically:

  1. A push to main in the openapi repo that touches api/** fires a repository_dispatch (gen-openapi-types) at this repo.
  2. The gen-openapi-types workflow regenerates api.gen.go and opens a PR on an auto/openapi-* branch.
  3. auto-approve-openapi approves that PR when the diff is limited to the generated files.

Regenerating manually

Install oapi-codegen if you haven't:

go install github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen@v2.7.1

Regenerate against the openapi main branch:

make gen/main

Or against a specific commit:

make gen OPENAPI_COMMIT_ID=<commit-hash>

The api.yaml spec uses cross-file $refs, so generation reads the fully dereferenced api/generated/api.json that the openapi repo publishes (rather than api/api.yaml directly).

Documentation

Overview

Package openapi provides primitives to interact with the openapi HTTP API.

Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.7.1 DO NOT EDIT.

Index

Constants

View Source
const (
	APIKeyHeaderScopes aPIKeyHeaderContextKey = "APIKeyHeader.Scopes"
	BearerScopes       bearerContextKey       = "Bearer.Scopes"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AcceptInviteJSONBody

type AcceptInviteJSONBody struct {
	// InvitedEmail The email address that the invite was sent to
	InvitedEmail string `json:"invitedEmail"`
}

AcceptInviteJSONBody defines parameters for AcceptInvite.

type AcceptInviteJSONRequestBody

type AcceptInviteJSONRequestBody AcceptInviteJSONBody

AcceptInviteJSONRequestBody defines body for AcceptInvite for application/json ContentType.

type AccessTokenOpts

type AccessTokenOpts struct {
	// AttachmentType How the access token should be attached to requests.
	AttachmentType AccessTokenOptsAttachmentType `json:"attachmentType" validate:"required"`

	// DocsURL URL with more information about how access token is used.
	DocsURL string `json:"docsURL,omitempty"`

	// Header Configuration for access token in header. Must be provided if type is in-header.
	Header *AccessTokenOptsHeader `json:"header,omitempty"`
}

AccessTokenOpts Configuration that defines how an OAuth 2.0 access token is attached to outbound API requests. When provided, this configuration overrides the default access-token handling behavior for the connector.

type AccessTokenOptsAttachmentType

type AccessTokenOptsAttachmentType string

AccessTokenOptsAttachmentType How the access token should be attached to requests.

const (
	AccessTokenHeaderAttachment AccessTokenOptsAttachmentType = "accessTokenHeaderAttachment"
)

Defines values for AccessTokenOptsAttachmentType.

func (AccessTokenOptsAttachmentType) Valid

Valid indicates whether the value is a known member of the AccessTokenOptsAttachmentType enum.

type AccessTokenOptsHeader

type AccessTokenOptsHeader struct {
	// Name The name of the header to be used for the access token.
	Name string `json:"name"`

	// ValuePrefix The prefix to be added to the access token value when it is sent in the header.
	ValuePrefix string `json:"valuePrefix,omitempty"`
}

AccessTokenOptsHeader Configuration for access token in header. Must be provided if type is in-header.

type AddUserToOrgJSONBody

type AddUserToOrgJSONBody struct {
	// BuilderId The ID of the builder to add to the organization
	BuilderId string `json:"builderId"`
}

AddUserToOrgJSONBody defines parameters for AddUserToOrg.

type AddUserToOrgJSONRequestBody

type AddUserToOrgJSONRequestBody AddUserToOrgJSONBody

AddUserToOrgJSONRequestBody defines body for AddUserToOrg for application/json ContentType.

type ApiKey

type ApiKey struct {
	// Active Whether the API key is active.
	Active *bool `json:"active,omitempty"`

	// Key The API key.
	Key string `json:"key"`

	// Label A short name for the API key.
	Label string `json:"label"`

	// ProjectId The project ID.
	ProjectId string `json:"projectId"`

	// Scopes The scopes for the API key.
	Scopes ApiKeyScopes `json:"scopes"`
}

ApiKey defines model for ApiKey.

type ApiKeyAsBasicOpts

type ApiKeyAsBasicOpts struct {
	// FieldUsed whether the API key should be used as the username or password.
	FieldUsed ApiKeyAsBasicOptsFieldUsed `json:"fieldUsed,omitempty"`

	// KeyFormat How to transform the API key in to a basic auth user:pass string. The %s is replaced with the API key value.
	KeyFormat string `json:"keyFormat,omitempty"`
}

ApiKeyAsBasicOpts when this object is present, it means that this provider uses Basic Auth to actually collect an API key

type ApiKeyAsBasicOptsFieldUsed

type ApiKeyAsBasicOptsFieldUsed string

ApiKeyAsBasicOptsFieldUsed whether the API key should be used as the username or password.

const (
	PasswordField ApiKeyAsBasicOptsFieldUsed = "password"
	UsernameField ApiKeyAsBasicOptsFieldUsed = "username"
)

Defines values for ApiKeyAsBasicOptsFieldUsed.

func (ApiKeyAsBasicOptsFieldUsed) Valid

func (e ApiKeyAsBasicOptsFieldUsed) Valid() bool

Valid indicates whether the value is a known member of the ApiKeyAsBasicOptsFieldUsed enum.

type ApiKeyOpts

type ApiKeyOpts struct {
	// AttachmentType How the API key should be attached to requests.
	AttachmentType ApiKeyOptsAttachmentType `json:"attachmentType" validate:"required"`

	// DocsURL URL with more information about how to get or use an API key.
	DocsURL string `json:"docsURL,omitempty"`

	// Header Configuration for API key in header. Must be provided if type is in-header.
	Header *ApiKeyOptsHeader `json:"header,omitempty"`

	// Query Configuration for API key in query parameter. Must be provided if type is in-query.
	Query *ApiKeyOptsQuery `json:"query,omitempty"`
}

ApiKeyOpts Configuration for API key. Must be provided if authType is apiKey.

type ApiKeyOptsAttachmentType

type ApiKeyOptsAttachmentType string

ApiKeyOptsAttachmentType How the API key should be attached to requests.

const (
	Header ApiKeyOptsAttachmentType = "header"
	Query  ApiKeyOptsAttachmentType = "query"
)

Defines values for ApiKeyOptsAttachmentType.

func (ApiKeyOptsAttachmentType) Valid

func (e ApiKeyOptsAttachmentType) Valid() bool

Valid indicates whether the value is a known member of the ApiKeyOptsAttachmentType enum.

type ApiKeyOptsHeader

type ApiKeyOptsHeader struct {
	// Name The name of the header to be used for the API key.
	Name string `json:"name"`

	// ValuePrefix The prefix to be added to the API key value when it is sent in the header.
	ValuePrefix string `json:"valuePrefix,omitempty"`
}

ApiKeyOptsHeader Configuration for API key in header. Must be provided if type is in-header.

type ApiKeyOptsQuery

type ApiKeyOptsQuery struct {
	// Name The name of the query parameter to be used for the API key.
	Name string `json:"name"`
}

ApiKeyOptsQuery Configuration for API key in query parameter. Must be provided if type is in-query.

type ApiKeyRequest

type ApiKeyRequest struct {
	// Label A short name for the API key.
	Label string `json:"label"`

	// Scopes The scopes for the API key.
	Scopes *ApiKeyScopes `json:"scopes,omitempty"`
}

ApiKeyRequest defines model for ApiKeyRequest.

type ApiKeyScopes

type ApiKeyScopes = []string

ApiKeyScopes The scopes for the API key.

type ApiProblem

type ApiProblem = Problem

ApiProblem A Problem Details object (RFC 9457).

Additional properties specific to the problem type may be present.

type AssociationChangeEvent

type AssociationChangeEvent struct {
	// Enabled If always, the integration will subscribe to association change events.
	Enabled *AssociationChangeEventEnabled `json:"enabled,omitempty"`

	// IncludeFullRecords If true, the integration will include full records in the event payload.
	IncludeFullRecords *bool `json:"includeFullRecords,omitempty"`
}

AssociationChangeEvent defines model for AssociationChangeEvent.

type AssociationChangeEventEnabled

type AssociationChangeEventEnabled string

AssociationChangeEventEnabled If always, the integration will subscribe to association change events.

const (
	AssociationChangeEventEnabledAlways AssociationChangeEventEnabled = "always"
)

Defines values for AssociationChangeEventEnabled.

func (AssociationChangeEventEnabled) Valid

Valid indicates whether the value is a known member of the AssociationChangeEventEnabled enum.

type AssociationDefinition

type AssociationDefinition struct {
	// AssociationType High-level association variety (e.g., 'foreignKey', 'lookup', 'ref')
	AssociationType string `json:"associationType"`

	// Cardinality Association cardinality from the referencing field's perspective
	Cardinality *string `json:"cardinality,omitempty"`

	// Labels UI labels for an association
	Labels *AssociationLabels `json:"labels,omitempty"`

	// OnDelete Behavior upon foreign object deletion
	OnDelete *string `json:"onDelete,omitempty"`

	// Required If true, a referenced record must exist
	Required *bool `json:"required,omitempty"`

	// ReverseLookupFieldName Optional inverse relationship/property name exposed on the target object
	ReverseLookupFieldName *string `json:"reverseLookupFieldName,omitempty"`

	// TargetField Name of the referenced field on the target object
	TargetField *string `json:"targetField,omitempty"`

	// TargetObject Name of the referenced/parent object
	TargetObject string `json:"targetObject"`
}

AssociationDefinition Relationship information for a field to another object

type AssociationLabels

type AssociationLabels struct {
	// Plural Plural display label
	Plural *string `json:"plural,omitempty"`

	// Singular Singular display label
	Singular *string `json:"singular,omitempty"`
}

AssociationLabels UI labels for an association

type AuthHealthCheck

type AuthHealthCheck struct {
	// Method The HTTP method to use for the health check. If not set, defaults to GET.
	Method string `json:"method,omitempty"`

	// SuccessStatusCodes The HTTP status codes that indicate a successful health check. If not set, defaults to 200 and 204.
	SuccessStatusCodes []int `json:"successStatusCodes,omitempty"`

	// Url a no-op URL to check the health of the credentials. The URL MUST not mutate any state. If the provider doesn't have such an endpoint, then don't provide credentialsHealthCheck.
	Url string `json:"url"`
}

AuthHealthCheck A URL to check the health of a provider's credentials. It's used to see if the credentials are valid and if the provider is reachable.

type AuthType

type AuthType string

AuthType The type of authentication required by the provider.

const (
	AuthTypeApiKey AuthType = "apiKey"
	AuthTypeBasic  AuthType = "basic"
	AuthTypeCustom AuthType = "custom"
	AuthTypeJwt    AuthType = "jwt"
	AuthTypeNone   AuthType = "none"
	AuthTypeOauth2 AuthType = "oauth2"
)

Defines values for AuthType.

func (AuthType) Valid

func (e AuthType) Valid() bool

Valid indicates whether the value is a known member of the AuthType enum.

type Backfill

type Backfill struct {
	DefaultPeriod DefaultPeriod `json:"defaultPeriod"`
}

Backfill defines model for Backfill.

type BackfillConfig

type BackfillConfig struct {
	DefaultPeriod DefaultPeriodConfig `json:"defaultPeriod"`

	// FieldFilters Filters to apply only during backfill. Multiple conditions are joined by AND. Use this when you want different filter behavior for backfill vs. incremental reads.
	FieldFilters []ReadFilter `json:"fieldFilters,omitempty"`
}

BackfillConfig defines model for BackfillConfig.

type BackfillProgress

type BackfillProgress struct {
	// CreateTime When the backfill operation started.
	CreateTime *time.Time `json:"createTime,omitempty"`

	// InstallationId The installation ID.
	InstallationId string `json:"installationId"`

	// ObjectName The object being synced (e.g., contact, account).
	ObjectName string `json:"objectName"`

	// OperationId The ID of the backfill operation.
	OperationId string `json:"operationId"`

	// RecordsEstimatedTotal The estimated total number of records to process. Only present for Salesforce and HubSpot; other connectors omit this field.
	RecordsEstimatedTotal *int `json:"recordsEstimatedTotal,omitempty"`

	// RecordsProcessed The number of records processed so far. Updates as more records are read during the backfill.
	RecordsProcessed int `json:"recordsProcessed"`

	// UpdateTime When progress was last updated.
	UpdateTime *time.Time `json:"updateTime,omitempty"`
}

BackfillProgress defines model for BackfillProgress.

type BaseConfigContent

type BaseConfigContent struct {
	// Provider The SaaS API that we are integrating with.
	Provider *string          `json:"provider,omitempty"`
	Proxy    *BaseProxyConfig `json:"proxy,omitempty"`
	Read     *BaseReadConfig  `json:"read,omitempty"`
	Write    *BaseWriteConfig `json:"write,omitempty"`
}

BaseConfigContent defines model for BaseConfigContent.

type BaseProxyConfig

type BaseProxyConfig struct {
	Enabled *bool `json:"enabled,omitempty"`
}

BaseProxyConfig defines model for BaseProxyConfig.

type BaseReadConfig

type BaseReadConfig struct {
	// Objects This is a map of object names to their configuration.
	Objects *map[string]BaseReadConfigObject `json:"objects,omitempty"`
}

BaseReadConfig defines model for BaseReadConfig.

type BaseReadConfigObject

type BaseReadConfigObject struct {
	Backfill *BackfillConfig `json:"backfill,omitempty"`

	// Destination The name of the destination that the result should be sent to.
	Destination string `json:"destination,omitempty"`

	// Disabled If this flag is set to true, scheduled reads associated with this object will be paused, and on-demand reads will not be allowed.
	Disabled *bool `json:"disabled,omitempty"`

	// DynamicMappingsInput An array containing all available dynamic field and value mappings for this installation, provided by the InstallIntegration component. This array represents the complete set of possible mappings, regardless of which ones are currently selected. The actual selected mappings are stored separately in the selectedFieldMappings property.
	DynamicMappingsInput *DynamicMappingsInput `json:"dynamicMappingsInput,omitempty"`

	// FieldFilters Filters to apply when reading records during incremental reads and backfill. Multiple conditions are joined by AND. Each field can only have one condition.
	FieldFilters []ReadFilter `json:"fieldFilters,omitempty"`

	// ObjectName The name of the object to read from.
	ObjectName *string `json:"objectName,omitempty" validate:"required"`

	// Schedule The schedule for reading the object, in cron syntax.
	Schedule string `json:"schedule,omitempty"`

	// SelectedFieldMappings This is a map of mapToNames to field names. (A mapTo name is the name the builder wants to map a field to when it lands in their destination.)
	SelectedFieldMappings *map[string]string `json:"selectedFieldMappings,omitempty"`

	// SelectedFields This is a map of field names to booleans indicating whether they should be read. If a field is already included in `selectedFieldMappings`, it does not need to be included here.
	SelectedFields *map[string]bool `json:"selectedFields,omitempty"`

	// SelectedFieldsAuto If selectedFieldsAuto is set to all, all fields will be read.
	SelectedFieldsAuto *SelectedFieldsAutoConfig `json:"selectedFieldsAuto,omitempty"`

	// SelectedValueMappings This is a map of field names to their value mappings.
	SelectedValueMappings map[string]SelectedValueMappings `json:"selectedValueMappings,omitempty"`
}

BaseReadConfigObject defines model for BaseReadConfigObject.

type BaseSubscribeConfig

type BaseSubscribeConfig struct {
	Objects *map[string]BaseSubscribeConfigObject `json:"objects,omitempty"`
}

BaseSubscribeConfig defines model for BaseSubscribeConfig.

type BaseSubscribeConfigObject

type BaseSubscribeConfigObject struct {
	CreateEvent *ConfigCreateEvent `json:"createEvent,omitempty"`
	DeleteEvent *ConfigDeleteEvent `json:"deleteEvent,omitempty"`

	// Destination The name of the destination that the result should be sent to.
	Destination string `json:"destination"`

	// InheritFieldsAndMappings Whether to inherit fields and mappings from the read config.
	InheritFieldsAndMappings bool `json:"inheritFieldsAndMappings"`

	// ObjectName The name of the object to subscribe to.
	ObjectName  string             `json:"objectName" validate:"required"`
	OtherEvents *ConfigOtherEvents `json:"otherEvents,omitempty"`

	// ProviderOptions Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.
	ProviderOptions *SubscribeProviderOptions `json:"providerOptions,omitempty"`
	UpdateEvent     *ConfigUpdateEvent        `json:"updateEvent,omitempty"`
}

BaseSubscribeConfigObject defines model for BaseSubscribeConfigObject.

type BaseWriteConfig

type BaseWriteConfig struct {
	// Objects This is a map of object names to their configuration.
	Objects *map[string]BaseWriteConfigObject `json:"objects,omitempty"`
}

BaseWriteConfig defines model for BaseWriteConfig.

type BaseWriteConfigObject

type BaseWriteConfigObject struct {
	DeletionSettings *DeletionSettings `json:"deletionSettings,omitempty"`

	// ObjectName The name of the object to write to.
	ObjectName string `json:"objectName" validate:"required"`

	// SelectedFieldSettings This is a map of field names to their settings.
	SelectedFieldSettings map[string]FieldSetting `json:"selectedFieldSettings,omitempty"`

	// SelectedValueDefaults This is a map of field names to default values. These values will be used when writing to the object.
	// Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set
	SelectedValueDefaults map[string]ValueDefault `json:"selectedValueDefaults,omitempty"`
}

BaseWriteConfigObject defines model for BaseWriteConfigObject.

type BasicAuthOpts

type BasicAuthOpts struct {
	// ApiKeyAsBasic If true, the provider uses an API key which then gets encoded as a basic auth user:pass string.
	ApiKeyAsBasic bool `json:"apiKeyAsBasic,omitempty"`

	// ApiKeyAsBasicOpts when this object is present, it means that this provider uses Basic Auth to actually collect an API key
	ApiKeyAsBasicOpts *ApiKeyAsBasicOpts `json:"apiKeyAsBasicOpts,omitempty"`

	// DocsURL URL with more information about how to get or use an API key.
	DocsURL string `json:"docsURL,omitempty"`
}

BasicAuthOpts Configuration for Basic Auth. Optional.

type BatchUpsertIntegrationsJSONBody

type BatchUpsertIntegrationsJSONBody struct {
	// SourceYaml A YAML string that defines the integrations.
	SourceYaml *string `json:"sourceYaml,omitempty"`

	// SourceZipUrl URL of where a zip of the source files can be downloaded (e.g. Google Cloud Storage URL).
	SourceZipUrl *string `json:"sourceZipUrl,omitempty"`
}

BatchUpsertIntegrationsJSONBody defines parameters for BatchUpsertIntegrations.

type BatchUpsertIntegrationsJSONRequestBody

type BatchUpsertIntegrationsJSONRequestBody BatchUpsertIntegrationsJSONBody

BatchUpsertIntegrationsJSONRequestBody defines body for BatchUpsertIntegrations for application/json ContentType.

type BatchUpsertIntegrationsParams

type BatchUpsertIntegrationsParams struct {
	// Destructive Defaults to false. This flag controls whether to perform destructive actions when deploying integrations, like pausing all read actions for an object that was removed in the latest revision.
	Destructive *bool `form:"destructive,omitempty" json:"destructive,omitempty"`
}

BatchUpsertIntegrationsParams defines parameters for BatchUpsertIntegrations.

type BatchWriteSupport

type BatchWriteSupport struct {
	Create BatchWriteSupportConfig `json:"create"`
	Delete BatchWriteSupportConfig `json:"delete"`
	Update BatchWriteSupportConfig `json:"update"`
	Upsert BatchWriteSupportConfig `json:"upsert"`
}

BatchWriteSupport defines model for BatchWriteSupport.

type BatchWriteSupportConfig

type BatchWriteSupportConfig struct {
	// DefaultRecordLimit The default number of records supported in a batch
	DefaultRecordLimit *int `json:"defaultRecordLimit,omitempty"`

	// ObjectRecordLimits Defines object-level overrides for batch record limits. Keys represent object names, and values specify the maximum number of records per batch for those objects.
	ObjectRecordLimits *map[string]int `json:"objectRecordLimits,omitempty"`

	// Supported Whether this type of batch write operation is supported
	Supported bool `json:"supported"`
}

BatchWriteSupportConfig defines model for BatchWriteSupportConfig.

type BillingAccount

type BillingAccount struct {
	// BillingProvider The billing provider that this account is associated with.
	BillingProvider string `json:"billingProvider"`

	// BillingProviderRef The ID used by the billing provider to identify the account.
	BillingProviderRef string `json:"billingProviderRef"`

	// CreateTime The time the billing account was created.
	CreateTime *time.Time `json:"createTime,omitempty"`

	// DisplayName The display name of the billing account.
	DisplayName string `json:"displayName"`

	// Id The billing account ID.
	Id string `json:"id"`

	// UpdateTime The time the billing account was last updated.
	UpdateTime *time.Time `json:"updateTime,omitempty"`
}

BillingAccount defines model for BillingAccount.

type Builder

type Builder struct {
	// CreateTime The time that the builder joined Ampersand.
	CreateTime time.Time `json:"createTime"`
	FirstName  *string   `json:"firstName,omitempty"`
	FullName   *string   `json:"fullName,omitempty"`

	// Id The builder ID.
	Id string `json:"id"`

	// IdpProvider The identity provider
	IdpProvider string `json:"idpProvider"`

	// IdpRef ID used by the identity provider
	IdpRef       string  `json:"idpRef"`
	LastName     *string `json:"lastName,omitempty"`
	PrimaryEmail *string `json:"primaryEmail,omitempty"`
}

Builder defines model for Builder.

type BuilderInfo

type BuilderInfo struct {
	Builder Builder `json:"builder"`
	OrgRole *struct {
		Org Org `json:"org"`

		// PrincipalId The ID of the team or builder.
		PrincipalId string `json:"principalId"`

		// PrincipalType The type of the principal.
		PrincipalType BuilderInfoOrgRolePrincipalType `json:"principalType"`

		// Role The role of the builder in the org.
		Role string `json:"role"`
	} `json:"orgRole,omitempty"`

	// ProjectRoles A map of project IDs to project roles for the builder.
	ProjectRoles map[string]struct {
		// PrincipalId The ID of the team or builder.
		PrincipalId string `json:"principalId"`

		// PrincipalType The type of the principal.
		PrincipalType BuilderInfoProjectRolesPrincipalType `json:"principalType"`
		Project       Project                              `json:"project"`

		// Role The role of the builder in the project.
		Role string `json:"role"`
	} `json:"projectRoles"`
}

BuilderInfo defines model for BuilderInfo.

type BuilderInfoOrgRolePrincipalType

type BuilderInfoOrgRolePrincipalType string

BuilderInfoOrgRolePrincipalType The type of the principal.

const (
	BuilderInfoOrgRolePrincipalTypeBuilder BuilderInfoOrgRolePrincipalType = "builder"
	BuilderInfoOrgRolePrincipalTypeTeam    BuilderInfoOrgRolePrincipalType = "team"
)

Defines values for BuilderInfoOrgRolePrincipalType.

func (BuilderInfoOrgRolePrincipalType) Valid

Valid indicates whether the value is a known member of the BuilderInfoOrgRolePrincipalType enum.

type BuilderInfoProjectRolesPrincipalType

type BuilderInfoProjectRolesPrincipalType string

BuilderInfoProjectRolesPrincipalType The type of the principal.

const (
	BuilderInfoProjectRolesPrincipalTypeBuilder BuilderInfoProjectRolesPrincipalType = "builder"
	BuilderInfoProjectRolesPrincipalTypeTeam    BuilderInfoProjectRolesPrincipalType = "team"
)

Defines values for BuilderInfoProjectRolesPrincipalType.

func (BuilderInfoProjectRolesPrincipalType) Valid

Valid indicates whether the value is a known member of the BuilderInfoProjectRolesPrincipalType enum.

type BulkWriteSupport

type BulkWriteSupport struct {
	Delete bool `json:"delete"`
	Insert bool `json:"insert"`
	Update bool `json:"update"`
	Upsert bool `json:"upsert"`
}

BulkWriteSupport defines model for BulkWriteSupport.

type CatalogType

type CatalogType map[string]ProviderInfo

CatalogType defines model for CatalogType.

type CheckClaimedDomainParams

type CheckClaimedDomainParams struct {
	// Domain Accepts an email address, domain name, or URL. The domain will be automatically extracted: for emails, the portion after @ is used (e.g., "user@example.com" becomes "example.com"); for URLs, the hostname is extracted (e.g., "https://www.example.com" becomes "example.com").
	Domain string `form:"domain" json:"domain"`
}

CheckClaimedDomainParams defines parameters for CheckClaimedDomain.

type ClaimDomainJSONBody

type ClaimDomainJSONBody struct {
	// Domain Accepts an email address, domain name, or URL. The domain will be automatically extracted: for emails, the portion after @ is used (e.g., "user@example.com" becomes "example.com"); for URLs, the hostname is extracted (e.g., "https://www.example.com" becomes "example.com").
	Domain string `json:"domain"`

	// ParentId ID of the parent entity claiming the domain
	ParentId string `json:"parentId"`

	// ParentType Type of the parent entity
	ParentType string `json:"parentType"`
}

ClaimDomainJSONBody defines parameters for ClaimDomain.

type ClaimDomainJSONRequestBody

type ClaimDomainJSONRequestBody ClaimDomainJSONBody

ClaimDomainJSONRequestBody defines body for ClaimDomain for application/json ContentType.

type ClaimedDomainResponse

type ClaimedDomainResponse struct {
	// Domain The normalized domain name
	Domain string `json:"domain"`

	// Id Unique identifier for the claimed domain
	Id string `json:"id"`

	// ParentId ID of the parent entity that claimed the domain
	ParentId string `json:"parentId"`

	// ParentType Type of the parent entity that claimed the domain
	ParentType string `json:"parentType"`
}

ClaimedDomainResponse defines model for ClaimedDomainResponse.

type Config

type Config struct {
	Content ConfigContent `json:"content"`

	// CreateTime The time the config was created.
	CreateTime time.Time `json:"createTime"`

	// CreatedBy The person who created the config, in the format of "consumer:{consumer-id}" or "builder:{builder-id}".
	CreatedBy string `json:"createdBy"`

	// Id The config ID.
	Id string `json:"id"`

	// RevisionId The ID of the revision that was current when this config was created or last updated.
	RevisionId string `json:"revisionId"`
}

Config defines model for Config.

type ConfigContent

type ConfigContent struct {
	// Provider The SaaS API that we are integrating with.
	Provider  string           `json:"provider"`
	Proxy     *BaseProxyConfig `json:"proxy,omitempty"`
	Read      *ReadConfig      `json:"read,omitempty"`
	Subscribe *SubscribeConfig `json:"subscribe,omitempty"`
	Write     *WriteConfig     `json:"write,omitempty"`
}

ConfigContent defines model for ConfigContent.

type ConfigCreateEvent

type ConfigCreateEvent struct {
	// Enabled Conditions to enable create events.
	Enabled ConfigCreateEventEnabled `json:"enabled" validate:"oneof=always never"`
}

ConfigCreateEvent defines model for ConfigCreateEvent.

type ConfigCreateEventEnabled

type ConfigCreateEventEnabled string

ConfigCreateEventEnabled Conditions to enable create events.

const (
	ConfigCreateEventEnabledAlways ConfigCreateEventEnabled = "always"
	ConfigCreateEventEnabledNever  ConfigCreateEventEnabled = "never"
)

Defines values for ConfigCreateEventEnabled.

func (ConfigCreateEventEnabled) Valid

func (e ConfigCreateEventEnabled) Valid() bool

Valid indicates whether the value is a known member of the ConfigCreateEventEnabled enum.

type ConfigDeleteEvent

type ConfigDeleteEvent struct {
	// Enabled Conditions to enable delete events.
	Enabled ConfigDeleteEventEnabled `json:"enabled" validate:"oneof=always never"`
}

ConfigDeleteEvent defines model for ConfigDeleteEvent.

type ConfigDeleteEventEnabled

type ConfigDeleteEventEnabled string

ConfigDeleteEventEnabled Conditions to enable delete events.

const (
	ConfigDeleteEventEnabledAlways ConfigDeleteEventEnabled = "always"
	ConfigDeleteEventEnabledNever  ConfigDeleteEventEnabled = "never"
)

Defines values for ConfigDeleteEventEnabled.

func (ConfigDeleteEventEnabled) Valid

func (e ConfigDeleteEventEnabled) Valid() bool

Valid indicates whether the value is a known member of the ConfigDeleteEventEnabled enum.

type ConfigOtherEvents

type ConfigOtherEvents = []string

ConfigOtherEvents defines model for ConfigOtherEvents.

type ConfigUpdateEvent

type ConfigUpdateEvent struct {
	// Enabled Conditions to enable update events.
	Enabled ConfigUpdateEventEnabled `json:"enabled" validate:"oneof=always never"`

	// RequiredWatchFields The fields that should be watched.
	RequiredWatchFields *[]string `json:"requiredWatchFields,omitempty"`

	// WatchFieldsAuto Whether to watch fields all fields automatically.
	WatchFieldsAuto *ConfigUpdateEventWatchFieldsAuto `json:"watchFieldsAuto,omitempty"`
}

ConfigUpdateEvent defines model for ConfigUpdateEvent.

type ConfigUpdateEventEnabled

type ConfigUpdateEventEnabled string

ConfigUpdateEventEnabled Conditions to enable update events.

const (
	ConfigUpdateEventEnabledAlways ConfigUpdateEventEnabled = "always"
	ConfigUpdateEventEnabledNever  ConfigUpdateEventEnabled = "never"
)

Defines values for ConfigUpdateEventEnabled.

func (ConfigUpdateEventEnabled) Valid

func (e ConfigUpdateEventEnabled) Valid() bool

Valid indicates whether the value is a known member of the ConfigUpdateEventEnabled enum.

type ConfigUpdateEventWatchFieldsAuto

type ConfigUpdateEventWatchFieldsAuto string

ConfigUpdateEventWatchFieldsAuto Whether to watch fields all fields automatically.

const (
	ConfigUpdateEventWatchFieldsAutoAll ConfigUpdateEventWatchFieldsAuto = "all"
)

Defines values for ConfigUpdateEventWatchFieldsAuto.

func (ConfigUpdateEventWatchFieldsAuto) Valid

Valid indicates whether the value is a known member of the ConfigUpdateEventWatchFieldsAuto enum.

type Connection

type Connection struct {
	// ApiKey The API key used while making the connection.
	ApiKey *string `json:"apiKey,omitempty"`

	// AuthScheme The authentication scheme used for this connection.
	AuthScheme ConnectionAuthScheme `json:"authScheme"`
	Consumer   Consumer             `json:"consumer"`

	// CreateTime The time the connection was created.
	CreateTime time.Time `json:"createTime"`
	Group      Group     `json:"group"`

	// Id The connection ID.
	Id                      string                             `json:"id"`
	Oauth2AuthorizationCode *Oauth2AuthorizationCodeTokensOnly `json:"oauth2AuthorizationCode,omitempty"`

	// ProjectId The Ampersand project ID.
	ProjectId string `json:"projectId"`

	// Provider The SaaS provider that this Connection is for.
	Provider    string       `json:"provider"`
	ProviderApp *ProviderApp `json:"providerApp,omitempty"`

	// ProviderConsumerRef If available, the ID that Salesforce/Hubspot uses to identify this user (e.g. Salesforce has IDs in the form of https://login.salesforce.com/id/00D4x0000019CQTEA2/0054x000000orJ4AA)
	ProviderConsumerRef *string           `json:"providerConsumerRef,omitempty"`
	ProviderMetadata    *ProviderMetadata `json:"providerMetadata,omitempty"`

	// ProviderWorkspaceRef If available, the identifier for the provider workspace (e.g. the Salesforce subdomain)
	ProviderWorkspaceRef *string `json:"providerWorkspaceRef,omitempty"`

	// Status The status of the connection.
	// - `created`: The connection has just been created or the access token was just refreshed.
	// - `working`: The connection has successfully been used to make a request.
	// - `bad_credentials`: The connection encountered credential-related issues when making a request, or when attempting to refresh the access token.
	Status ConnectionStatus `json:"status"`

	// UpdateTime The time the connection was last updated.
	UpdateTime *time.Time `json:"updateTime,omitempty"`
}

Connection defines model for Connection.

type ConnectionAuthScheme

type ConnectionAuthScheme string

ConnectionAuthScheme The authentication scheme used for this connection.

const (
	ConnectionAuthSchemeApiKey                      ConnectionAuthScheme = "apiKey"
	ConnectionAuthSchemeBasic                       ConnectionAuthScheme = "basic"
	ConnectionAuthSchemeNone                        ConnectionAuthScheme = "none"
	ConnectionAuthSchemeOauth2authorizationCode     ConnectionAuthScheme = "oauth2/authorizationCode"
	ConnectionAuthSchemeOauth2authorizationCodePKCE ConnectionAuthScheme = "oauth2/authorizationCodePKCE"
	ConnectionAuthSchemeOauth2clientCredentials     ConnectionAuthScheme = "oauth2/clientCredentials"
	ConnectionAuthSchemeOauth2password              ConnectionAuthScheme = "oauth2/password"
)

Defines values for ConnectionAuthScheme.

func (ConnectionAuthScheme) Valid

func (e ConnectionAuthScheme) Valid() bool

Valid indicates whether the value is a known member of the ConnectionAuthScheme enum.

type ConnectionRequest

type ConnectionRequest struct {
	// ApiKey The API key to use for the connection.
	ApiKey    *string `json:"apiKey,omitempty"`
	BasicAuth *struct {
		// Password The password to use for the connection.
		Password string `json:"password"`

		// Username The username to use for the connection.
		Username string `json:"username"`
	} `json:"basicAuth,omitempty"`

	// ConsumerName The name of the consumer that has access to this installation.
	ConsumerName *string `json:"consumerName,omitempty"`

	// ConsumerRef The consumer reference.
	ConsumerRef *string `json:"consumerRef,omitempty"`

	// CustomAuth Values used for custom auth input variables. Most values are strings (API keys, tokens, etc.), but structured values like arrays are also accepted — for example, googleWorkspaceDelegation sends a `scopes` array alongside the service account key.
	CustomAuth *map[string]interface{} `json:"customAuth,omitempty"`

	// GroupName The name of the user group that has access to this installation.
	GroupName *string `json:"groupName,omitempty"`

	// GroupRef The ID of the user group that has access to this installation.
	GroupRef                *string                  `json:"groupRef,omitempty"`
	Oauth2AuthorizationCode *Oauth2AuthorizationCode `json:"oauth2AuthorizationCode,omitempty"`
	Oauth2ClientCredentials *struct {
		// ClientId The client ID to use for the connection.
		ClientId string `json:"clientId"`

		// ClientSecret The client secret to use for the connection.
		ClientSecret string `json:"clientSecret"`

		// Scopes The scopes for the tokens.
		Scopes *[]string `json:"scopes,omitempty"`
	} `json:"oauth2ClientCredentials,omitempty"`
	Oauth2PasswordCredentials *struct {
		// ClientId The client ID to use for the connection.
		ClientId string `json:"clientId"`

		// ClientSecret The client secret to use for the connection.
		ClientSecret string `json:"clientSecret"`

		// Password The password to use for the connection.
		Password string `json:"password"`

		// Scopes The scopes for the tokens.
		Scopes *[]string `json:"scopes,omitempty"`

		// Username The username to use for the connection.
		Username string `json:"username"`
	} `json:"oauth2PasswordCredentials,omitempty"`

	// Provider The provider name (e.g. "salesforce", "hubspot")
	Provider         *string           `json:"provider,omitempty"`
	ProviderMetadata *ProviderMetadata `json:"providerMetadata,omitempty"`

	// ProviderWorkspaceRef The ID of the provider workspace that this connection belongs to.
	ProviderWorkspaceRef *string `json:"providerWorkspaceRef,omitempty"`
}

ConnectionRequest defines model for ConnectionRequest.

type ConnectionStatus

type ConnectionStatus string

ConnectionStatus The status of the connection. - `created`: The connection has just been created or the access token was just refreshed. - `working`: The connection has successfully been used to make a request. - `bad_credentials`: The connection encountered credential-related issues when making a request, or when attempting to refresh the access token.

const (
	BadCredentials ConnectionStatus = "bad_credentials"
	Created        ConnectionStatus = "created"
	Working        ConnectionStatus = "working"
)

Defines values for ConnectionStatus.

func (ConnectionStatus) Valid

func (e ConnectionStatus) Valid() bool

Valid indicates whether the value is a known member of the ConnectionStatus enum.

type Consumer

type Consumer struct {
	// ConsumerName The name of the consumer.
	ConsumerName string `json:"consumerName"`

	// ConsumerRef The consumer reference.
	ConsumerRef string `json:"consumerRef"`

	// CreateTime The time the consumer was created.
	CreateTime time.Time `json:"createTime"`

	// ProjectId The Ampersand project ID.
	ProjectId string `json:"projectId"`

	// UpdateTime The time the consumer was last updated.
	UpdateTime *time.Time `json:"updateTime,omitempty"`
}

Consumer defines model for Consumer.

type CreateApiKeyJSONRequestBody

type CreateApiKeyJSONRequestBody = ApiKeyRequest

CreateApiKeyJSONRequestBody defines body for CreateApiKey for application/json ContentType.

type CreateBillingAccountSessionJSONBody

type CreateBillingAccountSessionJSONBody struct {
	// RedirectUrl The URL to redirect to once a portal session is exited.
	RedirectUrl string `json:"redirectUrl"`

	// Timeout The number of seconds before the portal session expires.
	Timeout *int `json:"timeout,omitempty"`
}

CreateBillingAccountSessionJSONBody defines parameters for CreateBillingAccountSession.

type CreateBillingAccountSessionJSONRequestBody

type CreateBillingAccountSessionJSONRequestBody CreateBillingAccountSessionJSONBody

CreateBillingAccountSessionJSONRequestBody defines body for CreateBillingAccountSession for application/json ContentType.

type CreateDestinationJSONBody

type CreateDestinationJSONBody struct {
	Metadata struct {
		// Account The storage account name for the `azureblob` destination.
		Account string `json:"account,omitempty"`

		// AccountIdentifier The Snowflake account identifier for the `snowflake` destination.
		AccountIdentifier string `json:"accountIdentifier,omitempty"`

		// BatchSize For warehouse destinations (`clickhouse`, `snowflake`, `bigquery`, `redshift`), the number of rows to buffer before flushing a batch. Defaults to 1000.
		BatchSize int `json:"batchSize,omitempty"`

		// Bucket The name of the S3 bucket to write objects to.
		Bucket string `json:"bucket,omitempty"`

		// ClusterIdentifier The Redshift provisioned cluster identifier for the `redshift` destination.
		ClusterIdentifier string `json:"clusterIdentifier,omitempty"`

		// Container The blob container name for the `azureblob` destination.
		Container string `json:"container,omitempty"`

		// Database The database name for the `clickhouse` destination.
		Database string `json:"database,omitempty"`

		// DatasetId The BigQuery dataset ID for the `bigquery` destination.
		DatasetId string `json:"datasetId,omitempty"`

		// DbName The database name (`snowflake`, `redshift`).
		DbName string `json:"dbName,omitempty"`

		// DbUser The database user for the `redshift` destination.
		DbUser string `json:"dbUser,omitempty"`

		// EndpointUrl The endpoint URL for the `kinesis` stream, or the optional custom endpoint URL for the `sqs` destination.
		EndpointUrl string `json:"endpointUrl,omitempty"`

		// Exchange The exchange to publish to for the `rabbitmq` destination. Required for `rabbitmq`.
		Exchange string `json:"exchange,omitempty"`

		// Headers Additional headers to add when Ampersand sends a webhook message
		Headers *WebhookHeaders `json:"headers,omitempty"`

		// KeyTemplate The template for the S3 object key to use when writing objects (a JMESPath template). If omitted, the key defaults to the message timestamp followed by the message ID.
		KeyTemplate string `json:"keyTemplate,omitempty"`

		// MaxWaitSecs For warehouse destinations, the maximum number of seconds to wait before flushing a batch (whichever comes first with `batchSize`). Defaults to 30.
		MaxWaitSecs int `json:"maxWaitSecs,omitempty"`

		// Name The queue or topic name for the `azureservicebus` destination. Required for `azureservicebus`.
		Name string `json:"name,omitempty"`

		// PartitionKeyTemplate The template for the partition key (a JMESPath template). Used by `kinesis`.
		PartitionKeyTemplate string `json:"partitionKeyTemplate,omitempty"`

		// ProjectId The Google Cloud project ID (`bigquery`, `pubsub`). Required for `pubsub`.
		ProjectId string `json:"projectId,omitempty"`

		// QueueUrl The SQS queue URL for the `sqs` destination. Required for `sqs`.
		QueueUrl string `json:"queueUrl,omitempty"`

		// Region The AWS region where the Kinesis or S3 destination is hosted.
		Region string `json:"region,omitempty"`

		// SchemaName The schema name (`snowflake`, `redshift`).
		SchemaName string `json:"schemaName,omitempty"`

		// ServerUrl The AMQP server URL for the `rabbitmq` destination. Required for `rabbitmq`.
		ServerUrl string `json:"serverUrl,omitempty"`

		// StorageClass The S3 storage class for written objects. Defaults to STANDARD. Common values include STANDARD, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, GLACIER_IR, and DEEP_ARCHIVE.
		StorageClass string `json:"storageClass,omitempty"`

		// StreamName The name of the Kinesis stream to send events to.
		StreamName string `json:"streamName,omitempty"`

		// TableId The BigQuery table ID for the `bigquery` destination.
		TableId string `json:"tableId,omitempty"`

		// TableName The destination table name (`clickhouse`, `snowflake`, `redshift`).
		TableName string `json:"tableName,omitempty"`

		// Tls Whether to connect over TLS. Optional for the `rabbitmq` destination.
		Tls bool `json:"tls,omitempty"`

		// TopicId The Pub/Sub topic ID for the `pubsub` destination. Required for `pubsub`.
		TopicId string `json:"topicId,omitempty"`

		// Url Webhook URL, must start with "https://". For `slack` destinations, this is the Slack incoming webhook URL.
		Url *string `json:"url,omitempty"`

		// UserId The user ID for the `snowflake` destination.
		UserId string `json:"userId,omitempty"`

		// Username The username for the `clickhouse` destination.
		Username string `json:"username,omitempty"`

		// WorkgroupName The Redshift Serverless workgroup name for the `redshift` destination.
		WorkgroupName string `json:"workgroupName,omitempty"`
	} `json:"metadata"`

	// Name Name for the new destination. Must be unique within the project and can only contain letters, numbers and dashes.
	Name string `json:"name"`

	// Secrets Secrets for the destination.
	Secrets *struct {
		// AccessKey The account access key for the `azureblob` destination.
		AccessKey string `json:"accessKey,omitempty"`

		// AccessKeyId The AWS access key ID for the `redshift` destination.
		AccessKeyId string `json:"accessKeyId,omitempty"`

		// AwsKeyId The AWS access key ID for the `kinesis`, `s3`, and `sqs` destinations. Required for `sqs`.
		AwsKeyId string `json:"awsKeyId,omitempty"`

		// AwsSecretKey The AWS secret access key for the `kinesis`, `s3`, and `sqs` destinations. Required for `sqs`.
		AwsSecretKey string `json:"awsSecretKey,omitempty"`

		// AwsSessionToken The optional AWS session token for the `kinesis`, `s3`, and `sqs` destinations.
		AwsSessionToken string `json:"awsSessionToken,omitempty"`

		// ConnectionString The connection string for the `azureservicebus` destination. Required for `azureservicebus`.
		ConnectionString string `json:"connectionString,omitempty"`

		// Credentials The service-account credentials JSON for the `bigquery`, `gcs`, and `pubsub` destinations. Required for `pubsub`.
		Credentials string `json:"credentials,omitempty"`

		// Password The password for the `clickhouse` and `rabbitmq` destinations. Required for `rabbitmq`.
		Password string `json:"password,omitempty"`

		// PrivateKey The PEM-encoded RSA private key for the `snowflake` destination.
		PrivateKey string `json:"privateKey,omitempty"`

		// SecretAccessKey The AWS secret access key for the `redshift` destination.
		SecretAccessKey string `json:"secretAccessKey,omitempty"`

		// Username The username for the `rabbitmq` destination. Required for `rabbitmq`.
		Username string `json:"username,omitempty"`
	} `json:"secrets,omitempty"`

	// Type The type of the destination. For `slack`, set `metadata.url` to a Slack incoming webhook URL. The warehouse and message-queue types (`clickhouse`, `snowflake`, `bigquery`, `redshift`, `sqs`, `pubsub`, `rabbitmq`, `azureservicebus`) are configured via the `metadata` and `secrets` fields documented below.
	Type CreateDestinationJSONBodyType `json:"type"`
}

CreateDestinationJSONBody defines parameters for CreateDestination.

type CreateDestinationJSONBodyType

type CreateDestinationJSONBodyType string

CreateDestinationJSONBodyType defines parameters for CreateDestination.

const (
	Azureservicebus CreateDestinationJSONBodyType = "azureservicebus"
	Bigquery        CreateDestinationJSONBodyType = "bigquery"
	Clickhouse      CreateDestinationJSONBodyType = "clickhouse"
	Kinesis         CreateDestinationJSONBodyType = "kinesis"
	Pubsub          CreateDestinationJSONBodyType = "pubsub"
	Rabbitmq        CreateDestinationJSONBodyType = "rabbitmq"
	Redshift        CreateDestinationJSONBodyType = "redshift"
	S3              CreateDestinationJSONBodyType = "s3"
	Slack           CreateDestinationJSONBodyType = "slack"
	Snowflake       CreateDestinationJSONBodyType = "snowflake"
	Sqs             CreateDestinationJSONBodyType = "sqs"
	Webhook         CreateDestinationJSONBodyType = "webhook"
)

Defines values for CreateDestinationJSONBodyType.

func (CreateDestinationJSONBodyType) Valid

Valid indicates whether the value is a known member of the CreateDestinationJSONBodyType enum.

type CreateDestinationJSONRequestBody

type CreateDestinationJSONRequestBody CreateDestinationJSONBody

CreateDestinationJSONRequestBody defines body for CreateDestination for application/json ContentType.

type CreateEvent

type CreateEvent struct {
	// Enabled If always, the integration will subscribe to create events by default.
	Enabled *CreateEventEnabled `json:"enabled,omitempty"`
}

CreateEvent defines model for CreateEvent.

type CreateEventEnabled

type CreateEventEnabled string

CreateEventEnabled If always, the integration will subscribe to create events by default.

const (
	CreateEventEnabledAlways CreateEventEnabled = "always"
)

Defines values for CreateEventEnabled.

func (CreateEventEnabled) Valid

func (e CreateEventEnabled) Valid() bool

Valid indicates whether the value is a known member of the CreateEventEnabled enum.

type CreateEventTopicRouteJSONBody

type CreateEventTopicRouteJSONBody struct {
	// EventType The type of notification event.
	EventType NotificationEventType `json:"eventType"`

	// TopicId The ID of the topic to route events to.
	TopicId string `json:"topicId"`
}

CreateEventTopicRouteJSONBody defines parameters for CreateEventTopicRoute.

type CreateEventTopicRouteJSONRequestBody

type CreateEventTopicRouteJSONRequestBody CreateEventTopicRouteJSONBody

CreateEventTopicRouteJSONRequestBody defines body for CreateEventTopicRoute for application/json ContentType.

type CreateInstallationJSONBody

type CreateInstallationJSONBody struct {
	// Config The config of the installation.
	Config struct {
		Content ConfigContent `json:"content"`

		// CreatedBy The person who created the config, in the format of "consumer:{consumer-id}", "builder:{builder-id}", or "api:{api-caller}".
		CreatedBy *string `json:"createdBy,omitempty"`

		// RevisionId Deprecated: This field will be automatically set to the latest revision.
		// Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set
		RevisionId *string `json:"revisionId,omitempty"`
	} `json:"config"`

	// ConnectionId The ID of the SaaS connection tied to this installation. If omitted the default connection for this group will be used.
	ConnectionId *string `json:"connectionId,omitempty"`

	// GroupRef The ID of the user group that has access to this installation.
	GroupRef string `json:"groupRef"`
}

CreateInstallationJSONBody defines parameters for CreateInstallation.

type CreateInstallationJSONRequestBody

type CreateInstallationJSONRequestBody CreateInstallationJSONBody

CreateInstallationJSONRequestBody defines body for CreateInstallation for application/json ContentType.

type CreateInstallationParams

type CreateInstallationParams struct {
	// SkipSampling When `true`, skips the sample read that validates the installation's read configuration against the provider before saving. Defaults to `false`.
	SkipSampling *bool `form:"skipSampling,omitempty" json:"skipSampling,omitempty"`
}

CreateInstallationParams defines parameters for CreateInstallation.

type CreateIntegrationJSONBody

type CreateIntegrationJSONBody struct {
	LatestRevision struct {
		Content Integration2 `json:"content"`

		// SpecVersion The spec version string.
		SpecVersion string `json:"specVersion"`
	} `json:"latestRevision"`

	// Name The integration name.
	Name string `json:"name"`

	// Provider The provider name (e.g. "salesforce", "hubspot")
	Provider string `json:"provider"`
}

CreateIntegrationJSONBody defines parameters for CreateIntegration.

type CreateIntegrationJSONRequestBody

type CreateIntegrationJSONRequestBody CreateIntegrationJSONBody

CreateIntegrationJSONRequestBody defines body for CreateIntegration for application/json ContentType.

type CreateJWTKeyJSONRequestBody

type CreateJWTKeyJSONRequestBody = CreateJWTKeyRequest

CreateJWTKeyJSONRequestBody defines body for CreateJWTKey for application/json ContentType.

type CreateJWTKeyRequest

type CreateJWTKeyRequest struct {
	// Algorithm The cryptographic JWT signing algorithm (currently only RS256 is supported)
	Algorithm CreateJWTKeyRequestAlgorithm `json:"algorithm"`

	// Label Human-readable label for the JWT key
	Label string `json:"label"`

	// PublicKeyPem RSA public key in PEM format for JWT signature verification
	PublicKeyPem string `json:"publicKeyPem"`
}

CreateJWTKeyRequest defines model for CreateJWTKeyRequest.

type CreateJWTKeyRequestAlgorithm

type CreateJWTKeyRequestAlgorithm string

CreateJWTKeyRequestAlgorithm The cryptographic JWT signing algorithm (currently only RS256 is supported)

const (
	RS256 CreateJWTKeyRequestAlgorithm = "RS256"
)

Defines values for CreateJWTKeyRequestAlgorithm.

func (CreateJWTKeyRequestAlgorithm) Valid

Valid indicates whether the value is a known member of the CreateJWTKeyRequestAlgorithm enum.

type CreateOrgInviteJSONBody

type CreateOrgInviteJSONBody struct {
	// Email The email address of the user to invite.
	Email string `json:"email"`
}

CreateOrgInviteJSONBody defines parameters for CreateOrgInvite.

type CreateOrgInviteJSONRequestBody

type CreateOrgInviteJSONRequestBody CreateOrgInviteJSONBody

CreateOrgInviteJSONRequestBody defines body for CreateOrgInvite for application/json ContentType.

type CreateOrgJSONBody

type CreateOrgJSONBody struct {
	// Label The organization label.
	Label string `json:"label"`
}

CreateOrgJSONBody defines parameters for CreateOrg.

type CreateOrgJSONRequestBody

type CreateOrgJSONRequestBody CreateOrgJSONBody

CreateOrgJSONRequestBody defines body for CreateOrg for application/json ContentType.

type CreateProjectJSONBody

type CreateProjectJSONBody struct {
	// AppName The display name of your application, shown to end users during the connection flow.
	AppName string `json:"appName"`

	// Name The unique name for the project. Must contain only letters, numbers, and hyphens. Values are normalized to lowercase on save.
	Name string `json:"name"`

	// OrgId The ID of the organization this project belongs to. Obtain this from the Ampersand Dashboard or by calling `GET /orgs`.
	OrgId string `json:"orgId"`
}

CreateProjectJSONBody defines parameters for CreateProject.

type CreateProjectJSONRequestBody

type CreateProjectJSONRequestBody CreateProjectJSONBody

CreateProjectJSONRequestBody defines body for CreateProject for application/json ContentType.

type CreateProviderAppJSONBody

type CreateProviderAppJSONBody struct {
	// ClientId The OAuth client ID for this app.
	ClientId string `json:"clientId"`

	// ClientSecret The OAuth client secret for this app.
	ClientSecret string `json:"clientSecret"`

	// ExternalRef The ID used by the provider to identify the app (optional).
	ExternalRef *string `json:"externalRef,omitempty"`

	// Metadata Provider-specific configuration that extends the standard OAuth flow.
	Metadata *ProviderAppMetadata `json:"metadata,omitempty"`

	// Provider The SaaS provider that this app connects to.
	Provider string `json:"provider"`

	// Scopes The OAuth scopes for this app.
	Scopes *[]string `json:"scopes,omitempty"`
}

CreateProviderAppJSONBody defines parameters for CreateProviderApp.

type CreateProviderAppJSONRequestBody

type CreateProviderAppJSONRequestBody CreateProviderAppJSONBody

CreateProviderAppJSONRequestBody defines body for CreateProviderApp for application/json ContentType.

type CreateRevisionJSONBody

type CreateRevisionJSONBody struct {
	// SourceYaml The source YAML file that defines the revision.
	SourceYaml *string `json:"sourceYaml,omitempty"`

	// SourceZipUrl URL of where a zip of the source files can be downloaded (e.g. Google Cloud Storage URL).
	SourceZipUrl *string `json:"sourceZipUrl,omitempty"`
}

CreateRevisionJSONBody defines parameters for CreateRevision.

type CreateRevisionJSONRequestBody

type CreateRevisionJSONRequestBody CreateRevisionJSONBody

CreateRevisionJSONRequestBody defines body for CreateRevision for application/json ContentType.

type CreateRevisionParams

type CreateRevisionParams struct {
	// Destructive Defaults to false. This flag controls whether to perform destructive actions when deploying integrations, like pausing all read actions for an object that was removed in the latest revision.
	Destructive *bool `form:"destructive,omitempty" json:"destructive,omitempty"`
}

CreateRevisionParams defines parameters for CreateRevision.

type CreateTopicDestinationRouteJSONBody

type CreateTopicDestinationRouteJSONBody struct {
	// DestinationId The ID of the destination.
	DestinationId string `json:"destinationId"`

	// TopicId The ID of the topic.
	TopicId string `json:"topicId"`
}

CreateTopicDestinationRouteJSONBody defines parameters for CreateTopicDestinationRoute.

type CreateTopicDestinationRouteJSONRequestBody

type CreateTopicDestinationRouteJSONRequestBody CreateTopicDestinationRouteJSONBody

CreateTopicDestinationRouteJSONRequestBody defines body for CreateTopicDestinationRoute for application/json ContentType.

type CreateTopicJSONBody

type CreateTopicJSONBody struct {
	// Name The name of the topic. Must contain only letters, numbers, and dashes.
	Name string `json:"name"`
}

CreateTopicJSONBody defines parameters for CreateTopic.

type CreateTopicJSONRequestBody

type CreateTopicJSONRequestBody CreateTopicJSONBody

CreateTopicJSONRequestBody defines body for CreateTopic for application/json ContentType.

type CustomAuthConnectJSONRequestBody

type CustomAuthConnectJSONRequestBody = CustomAuthConnectRequest

CustomAuthConnectJSONRequestBody defines body for CustomAuthConnect for application/json ContentType.

type CustomAuthConnectRequest

type CustomAuthConnectRequest struct {
	// CallbackParams The query/body params the provider sent to the callback, forwarded to resume the flow.
	CallbackParams *map[string]string `json:"callbackParams,omitempty"`

	// ConsumerName The display name for the consumer. Defaults to consumerRef if not provided. Supplied on the first call; ignored on resume calls.
	ConsumerName *string `json:"consumerName,omitempty"`

	// ConsumerRef The ID that your app uses to identify the user whose SaaS credential will be used. Supplied on the first call; ignored on resume calls (the parked flow's identity is used).
	ConsumerRef *string `json:"consumerRef,omitempty"`

	// CustomAuth The consumer-supplied custom auth inputs (keyed by CustomAuthInput.name). Supplied on the first call (when sessionId is not present).
	CustomAuth *map[string]interface{} `json:"customAuth,omitempty"`

	// GroupName The display name for the group. Defaults to groupRef if not provided. Supplied on the first call; ignored on resume calls.
	GroupName *string `json:"groupName,omitempty"`

	// GroupRef Your application's identifier for the organization or workspace that this connection belongs to. Supplied on the first call; ignored on resume calls (the parked flow's identity is used).
	GroupRef *string `json:"groupRef,omitempty"`

	// ProjectIdOrName The Ampersand project ID or project name. Required on the first call.
	ProjectIdOrName string `json:"projectIdOrName"`

	// Provider The provider that this app connects to. Required on the first call (when sessionId is not present); ignored on resume calls. Conditional requirement is enforced at the application layer.
	Provider *string `json:"provider,omitempty"`

	// ProviderAppId ID of the provider app. If omitted, the default provider app set up on the Dashboard is assumed.
	ProviderAppId    *string           `json:"providerAppId,omitempty"`
	ProviderMetadata *ProviderMetadata `json:"providerMetadata,omitempty"`

	// SessionId Identifies an in-progress flow to resume after a redirect. Returned in a prior redirect response. When present, provider and customAuth are not required.
	SessionId *string `json:"sessionId,omitempty"`
}

CustomAuthConnectRequest Request body for the /custom-auth/connect endpoint. The first call supplies the flow inputs; subsequent calls supply sessionId and callbackParams to resume after a redirect.

type CustomAuthConnectResponse

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

CustomAuthConnectResponse Response from /custom-auth/connect. Exactly one of redirect or connection is set. A redirect means the client should open the URL and call again with sessionId + callbackParams; a connection means the flow is complete.

func (CustomAuthConnectResponse) AsCustomAuthConnectResponse0

func (t CustomAuthConnectResponse) AsCustomAuthConnectResponse0() (CustomAuthConnectResponse0, error)

AsCustomAuthConnectResponse0 returns the union data inside the CustomAuthConnectResponse as a CustomAuthConnectResponse0

func (CustomAuthConnectResponse) AsCustomAuthConnectResponse1

func (t CustomAuthConnectResponse) AsCustomAuthConnectResponse1() (CustomAuthConnectResponse1, error)

AsCustomAuthConnectResponse1 returns the union data inside the CustomAuthConnectResponse as a CustomAuthConnectResponse1

func (*CustomAuthConnectResponse) FromCustomAuthConnectResponse0

func (t *CustomAuthConnectResponse) FromCustomAuthConnectResponse0(v CustomAuthConnectResponse0) error

FromCustomAuthConnectResponse0 overwrites any union data inside the CustomAuthConnectResponse as the provided CustomAuthConnectResponse0

func (*CustomAuthConnectResponse) FromCustomAuthConnectResponse1

func (t *CustomAuthConnectResponse) FromCustomAuthConnectResponse1(v CustomAuthConnectResponse1) error

FromCustomAuthConnectResponse1 overwrites any union data inside the CustomAuthConnectResponse as the provided CustomAuthConnectResponse1

func (CustomAuthConnectResponse) MarshalJSON

func (t CustomAuthConnectResponse) MarshalJSON() ([]byte, error)

func (*CustomAuthConnectResponse) MergeCustomAuthConnectResponse0

func (t *CustomAuthConnectResponse) MergeCustomAuthConnectResponse0(v CustomAuthConnectResponse0) error

MergeCustomAuthConnectResponse0 performs a merge with any union data inside the CustomAuthConnectResponse, using the provided CustomAuthConnectResponse0

func (*CustomAuthConnectResponse) MergeCustomAuthConnectResponse1

func (t *CustomAuthConnectResponse) MergeCustomAuthConnectResponse1(v CustomAuthConnectResponse1) error

MergeCustomAuthConnectResponse1 performs a merge with any union data inside the CustomAuthConnectResponse, using the provided CustomAuthConnectResponse1

func (*CustomAuthConnectResponse) UnmarshalJSON

func (t *CustomAuthConnectResponse) UnmarshalJSON(b []byte) error

type CustomAuthConnectResponse0

type CustomAuthConnectResponse0 struct {
	// Redirect Instructs the client to open a URL (e.g. in a popup) to continue a custom auth flow, then resume by calling /custom-auth/connect with the sessionId.
	Redirect RedirectResponse `json:"redirect"`
}

CustomAuthConnectResponse0 defines model for .

type CustomAuthConnectResponse1

type CustomAuthConnectResponse1 struct {
	Connection Connection `json:"connection"`
}

CustomAuthConnectResponse1 defines model for .

type CustomAuthHeader

type CustomAuthHeader struct {
	// Name The name of the header.
	Name string `json:"name"`

	// ValueTemplate The value of the header, represented as a Golang text/template expression. Only the backend will interpret this.
	ValueTemplate string `json:"valueTemplate" skipSubstitutions:"true"`
}

CustomAuthHeader A custom header to be used for authentication. Automatically added by the backend.

type CustomAuthInput

type CustomAuthInput struct {
	// DisplayName The human-readable name for the custom auth input field.
	DisplayName string `json:"displayName"`

	// DocsURL URL with details about this authentication mechanism and how to use it. Might be specific to this field, or a general URL for the provider. Optional.
	DocsURL string `json:"docsURL,omitempty"`

	// FieldType How the frontend should render this input. "fieldTypeText" is an unmasked field (not sensitive), "fieldTypePassword" is a masked field (sensitive), and "fieldTypeSelect" is a dropdown populated from options. Defaults to "fieldTypePassword" when omitted.
	FieldType CustomAuthInputFieldType `json:"fieldType,omitempty"`

	// Name The internal identifier for the custom auth input field.
	Name string `json:"name"`

	// Options The dropdown options, used only when fieldType is "select".
	Options []CustomAuthInputOption `json:"options,omitempty"`

	// Prompt Some helpful text or context to be displayed to the user when asking for this input.
	Prompt string `json:"prompt,omitempty"`
}

CustomAuthInput A custom input field for authentication. This is used by the frontend to dynamically render input fields for custom auth. The backend will not interpret this. It will however receive the value of this field before making a request (in the connection secrets).

type CustomAuthInputFieldType

type CustomAuthInputFieldType string

CustomAuthInputFieldType How the frontend should render this input. "fieldTypeText" is an unmasked field (not sensitive), "fieldTypePassword" is a masked field (sensitive), and "fieldTypeSelect" is a dropdown populated from options. Defaults to "fieldTypePassword" when omitted.

const (
	FieldTypePassword CustomAuthInputFieldType = "fieldTypePassword"
	FieldTypeSelect   CustomAuthInputFieldType = "fieldTypeSelect"
	FieldTypeText     CustomAuthInputFieldType = "fieldTypeText"
)

Defines values for CustomAuthInputFieldType.

func (CustomAuthInputFieldType) Valid

func (e CustomAuthInputFieldType) Valid() bool

Valid indicates whether the value is a known member of the CustomAuthInputFieldType enum.

type CustomAuthInputOption

type CustomAuthInputOption struct {
	// Label The human-readable label shown for this option.
	Label string `json:"label"`

	// Value The value stored when this option is selected.
	Value string `json:"value"`
}

CustomAuthInputOption A selectable option for a custom auth input whose fieldType is "select".

type CustomAuthOpts

type CustomAuthOpts struct {
	// Headers A list of custom headers to be used for authentication. The backend will add these headers.
	Headers []CustomAuthHeader `json:"headers,omitempty"`

	// Inputs A list of custom input fields for authentication. The frontend will render these input fields and the backend will receive the values of these fields before making a request.
	Inputs []CustomAuthInput `json:"inputs,omitempty"`

	// MultiStep Whether this provider uses a multi-step custom auth flow (browser redirects and/or server-side credential-exchange calls) driven by the /custom-auth/connect endpoint, rather than static header/query-param injection. The step definitions and handlers live in the connectors library, not the catalog; this flag is the signal that lets clients tell "multi-step custom" apart from plain "custom" at a glance.
	MultiStep bool `json:"multiStep,omitempty"`

	// ProviderInputs Input fields the builder configures on their provider app (e.g. client secrets, subscription keys) rather than the consumer. Routed to storage by fieldType. Optional.
	ProviderInputs []CustomAuthInput `json:"providerInputs,omitempty"`

	// QueryParams A list of custom query parameters to be used for authentication. The backend will add these query parameters.
	QueryParams []CustomAuthQueryParam `json:"queryParams,omitempty"`
}

CustomAuthOpts Configuration for custom auth. Optional.

type CustomAuthQueryParam

type CustomAuthQueryParam struct {
	// Name The name of the query parameter.
	Name string `json:"name"`

	// ValueTemplate The value of the query parameter, represented as a Golang text/template expression. Only the backend will interpret this.
	ValueTemplate string `json:"valueTemplate" skipSubstitutions:"true"`
}

CustomAuthQueryParam A custom query parameter to be used for authentication. Automatically added by the backend.

type DefaultPeriod

type DefaultPeriod struct {
	// Days Number of days in past to backfill from. 0 is no backfill. e.g) if 10, then backfill last 10 days of data. Required if fullHistory is not set.
	Days *int `json:"days,omitempty" validate:"required_without=FullHistory,omitempty,min=0"`

	// FullHistory If true, backfill all history. Required if days is not set.
	FullHistory *bool `json:"fullHistory,omitempty" validate:"required_without=Days"`
}

DefaultPeriod defines model for DefaultPeriod.

type DefaultPeriodConfig

type DefaultPeriodConfig struct {
	// Days Number of days in past to backfill from. 0 is no backfill. e.g) if 10, then backfill last 10 days of data. Required if fullHistory is not set.
	Days *int `json:"days,omitempty" validate:"required_without=FullHistory,omitempty,min=0"`

	// FullHistory If true, backfill all history. Required if days is not set.
	FullHistory *bool `json:"fullHistory,omitempty" validate:"required_without=Days"`
}

DefaultPeriodConfig defines model for DefaultPeriodConfig.

type DeleteEvent

type DeleteEvent struct {
	// Enabled If always, the integration will subscribe to delete events by default.
	Enabled *DeleteEventEnabled `json:"enabled,omitempty"`
}

DeleteEvent defines model for DeleteEvent.

type DeleteEventEnabled

type DeleteEventEnabled string

DeleteEventEnabled If always, the integration will subscribe to delete events by default.

const (
	DeleteEventEnabledAlways DeleteEventEnabled = "always"
)

Defines values for DeleteEventEnabled.

func (DeleteEventEnabled) Valid

func (e DeleteEventEnabled) Valid() bool

Valid indicates whether the value is a known member of the DeleteEventEnabled enum.

type DeletionSettings

type DeletionSettings struct {
	// Enabled Whether deletion is enabled for this object
	Enabled bool `json:"enabled"`
}

DeletionSettings defines model for DeletionSettings.

type Delivery

type Delivery struct {
	// Mode The data delivery mode for this object. If not specified, defaults to automatic.
	Mode *DeliveryMode `json:"mode,omitempty"`

	// PageSize The number of records to receive per data delivery.
	PageSize *int `json:"pageSize,omitempty"`
}

Delivery defines model for Delivery.

type DeliveryMode

type DeliveryMode string

DeliveryMode The data delivery mode for this object. If not specified, defaults to automatic.

const (
	Auto      DeliveryMode = "auto"
	OnRequest DeliveryMode = "onRequest"
)

Defines values for DeliveryMode.

func (DeliveryMode) Valid

func (e DeliveryMode) Valid() bool

Valid indicates whether the value is a known member of the DeliveryMode enum.

type Destination

type Destination struct {
	// CreateTime The time the destination was created.
	CreateTime time.Time `json:"createTime"`

	// Id The destination ID.
	Id       string `json:"id"`
	Metadata struct {
		// Account The storage account name for the azureblob destination
		Account *string `json:"account,omitempty"`

		// AccountIdentifier The Snowflake account identifier for the snowflake destination
		AccountIdentifier *string `json:"accountIdentifier,omitempty"`

		// BatchSize For warehouse destinations, rows to buffer before flushing a batch (default 1000)
		BatchSize *int `json:"batchSize,omitempty"`

		// Bucket The name of the S3 bucket
		Bucket *string `json:"bucket,omitempty"`

		// ClusterIdentifier The Redshift provisioned cluster identifier for the redshift destination
		ClusterIdentifier *string `json:"clusterIdentifier,omitempty"`

		// Container The blob container name for the azureblob destination
		Container *string `json:"container,omitempty"`

		// Database The database name for the clickhouse destination
		Database *string `json:"database,omitempty"`

		// DatasetId The BigQuery dataset ID for the bigquery destination
		DatasetId *string `json:"datasetId,omitempty"`

		// DbName The database name (snowflake, redshift)
		DbName *string `json:"dbName,omitempty"`

		// DbUser The database user for the redshift destination
		DbUser *string `json:"dbUser,omitempty"`

		// Exchange The exchange to publish to for the rabbitmq destination
		Exchange *string `json:"exchange,omitempty"`

		// Headers Additional headers to add when Ampersand sends a webhook message
		Headers *WebhookHeaders `json:"headers,omitempty"`

		// KeyTemplate JMESPath template for generating S3 object keys
		KeyTemplate *string `json:"keyTemplate,omitempty"`

		// MaxWaitSecs For warehouse destinations, max seconds before flushing a batch (default 30)
		MaxWaitSecs *int `json:"maxWaitSecs,omitempty"`

		// Name The queue or topic name for the azureservicebus destination
		Name *string `json:"name,omitempty"`

		// PartitionKeyTemplate Template for generating partition keys
		PartitionKeyTemplate *string `json:"partitionKeyTemplate,omitempty"`

		// ProjectId The Google Cloud project ID (bigquery, pubsub)
		ProjectId *string `json:"projectId,omitempty"`

		// QueueUrl The SQS queue URL for the sqs destination
		QueueUrl *string `json:"queueUrl,omitempty"`

		// Region The AWS region for the destination
		Region *string `json:"region,omitempty"`

		// SchemaName The schema name (snowflake, redshift)
		SchemaName *string `json:"schemaName,omitempty"`

		// ServerUrl The AMQP server URL for the rabbitmq destination
		ServerUrl *string `json:"serverUrl,omitempty"`

		// StorageClass The S3 storage class for written objects (defaults to STANDARD)
		StorageClass *string `json:"storageClass,omitempty"`

		// StreamName The name of the Kinesis stream
		StreamName *string `json:"streamName,omitempty"`

		// TableId The BigQuery table ID for the bigquery destination
		TableId *string `json:"tableId,omitempty"`

		// TableName The destination table name (clickhouse, snowflake, redshift)
		TableName *string `json:"tableName,omitempty"`

		// Tls Whether to connect over TLS (rabbitmq)
		Tls *bool `json:"tls,omitempty"`

		// TopicId The Pub/Sub topic ID for the pubsub destination
		TopicId *string `json:"topicId,omitempty"`

		// Url Webhook URL
		Url *string `json:"url,omitempty"`

		// UserId The user ID for the snowflake destination
		UserId *string `json:"userId,omitempty"`

		// Username The username for the clickhouse destination
		Username *string `json:"username,omitempty"`

		// WorkgroupName The Redshift Serverless workgroup name for the redshift destination
		WorkgroupName *string `json:"workgroupName,omitempty"`
	} `json:"metadata"`

	// Name User-defined name for the destination.
	Name string `json:"name"`

	// Type The type of the destination.
	Type string `json:"type"`

	// UpdateTime The time the destination was updated.
	UpdateTime *time.Time `json:"updateTime,omitempty"`
}

Destination defines model for Destination.

type DestinationWithSecrets

type DestinationWithSecrets struct {
	// CreateTime The time the destination was created.
	CreateTime time.Time `json:"createTime"`

	// Id The destination ID.
	Id       string `json:"id"`
	Metadata struct {
		// Account The storage account name for the azureblob destination
		Account *string `json:"account,omitempty"`

		// AccountIdentifier The Snowflake account identifier for the snowflake destination
		AccountIdentifier *string `json:"accountIdentifier,omitempty"`

		// BatchSize For warehouse destinations, rows to buffer before flushing a batch (default 1000)
		BatchSize *int `json:"batchSize,omitempty"`

		// Bucket The name of the S3 bucket
		Bucket *string `json:"bucket,omitempty"`

		// ClusterIdentifier The Redshift provisioned cluster identifier for the redshift destination
		ClusterIdentifier *string `json:"clusterIdentifier,omitempty"`

		// Container The blob container name for the azureblob destination
		Container *string `json:"container,omitempty"`

		// Database The database name for the clickhouse destination
		Database *string `json:"database,omitempty"`

		// DatasetId The BigQuery dataset ID for the bigquery destination
		DatasetId *string `json:"datasetId,omitempty"`

		// DbName The database name (snowflake, redshift)
		DbName *string `json:"dbName,omitempty"`

		// DbUser The database user for the redshift destination
		DbUser *string `json:"dbUser,omitempty"`

		// Exchange The exchange to publish to for the rabbitmq destination
		Exchange *string `json:"exchange,omitempty"`

		// Headers Additional headers to add when Ampersand sends a webhook message
		Headers *WebhookHeaders `json:"headers,omitempty"`

		// KeyTemplate JMESPath template for generating S3 object keys
		KeyTemplate *string `json:"keyTemplate,omitempty"`

		// MaxWaitSecs For warehouse destinations, max seconds before flushing a batch (default 30)
		MaxWaitSecs *int `json:"maxWaitSecs,omitempty"`

		// Name The queue or topic name for the azureservicebus destination
		Name *string `json:"name,omitempty"`

		// PartitionKeyTemplate Template for generating partition keys
		PartitionKeyTemplate *string `json:"partitionKeyTemplate,omitempty"`

		// ProjectId The Google Cloud project ID (bigquery, pubsub)
		ProjectId *string `json:"projectId,omitempty"`

		// QueueUrl The SQS queue URL for the sqs destination
		QueueUrl *string `json:"queueUrl,omitempty"`

		// Region The AWS region for the destination
		Region *string `json:"region,omitempty"`

		// SchemaName The schema name (snowflake, redshift)
		SchemaName *string `json:"schemaName,omitempty"`

		// ServerUrl The AMQP server URL for the rabbitmq destination
		ServerUrl *string `json:"serverUrl,omitempty"`

		// StorageClass The S3 storage class for written objects (defaults to STANDARD)
		StorageClass *string `json:"storageClass,omitempty"`

		// StreamName The name of the Kinesis stream
		StreamName *string `json:"streamName,omitempty"`

		// TableId The BigQuery table ID for the bigquery destination
		TableId *string `json:"tableId,omitempty"`

		// TableName The destination table name (clickhouse, snowflake, redshift)
		TableName *string `json:"tableName,omitempty"`

		// Tls Whether to connect over TLS (rabbitmq)
		Tls *bool `json:"tls,omitempty"`

		// TopicId The Pub/Sub topic ID for the pubsub destination
		TopicId *string `json:"topicId,omitempty"`

		// Url Webhook URL
		Url *string `json:"url,omitempty"`

		// UserId The user ID for the snowflake destination
		UserId *string `json:"userId,omitempty"`

		// Username The username for the clickhouse destination
		Username *string `json:"username,omitempty"`

		// WorkgroupName The Redshift Serverless workgroup name for the redshift destination
		WorkgroupName *string `json:"workgroupName,omitempty"`
	} `json:"metadata"`

	// Name User-defined name for the destination.
	Name string `json:"name"`

	// Secrets Destination secrets (only included when includeSecrets is true)
	Secrets *struct {
		// WebhookSigningKey Webhook signing key for the destination (only included for webhook destinations)
		WebhookSigningKey *string `json:"webhookSigningKey,omitempty"`
	} `json:"secrets,omitempty"`

	// Type The type of the destination.
	Type string `json:"type"`

	// UpdateTime The time the destination was updated.
	UpdateTime *time.Time `json:"updateTime,omitempty"`
}

DestinationWithSecrets Destination object with secrets field (returned by getDestination when includeSecrets is true)

type DynamicMappingsInput

type DynamicMappingsInput = []DynamicMappingsInputEntry

DynamicMappingsInput An array containing all available dynamic field and value mappings for this installation, provided by the InstallIntegration component. This array represents the complete set of possible mappings, regardless of which ones are currently selected. The actual selected mappings are stored separately in the selectedFieldMappings property.

type DynamicMappingsInputEntry

type DynamicMappingsInputEntry struct {
	// FieldName The name of the field in SaaS provider, if present, then we will not prompt the user to map the field.
	FieldName *string `json:"fieldName,omitempty"`

	// MapToDisplayName Optional display name of the field to show the user in the mapping UI.
	MapToDisplayName *string `json:"mapToDisplayName,omitempty"`

	// MapToName The name of the field in your application.
	MapToName string `json:"mapToName"`

	// MappedValues If you would like the user to map a set of possible values, this is the list of possible values of the field in your application.
	MappedValues *[]DynamicMappingsInputMappedValue `json:"mappedValues,omitempty"`

	// Prompt Optional prompt to show the user in the mapping UI.
	Prompt *string `json:"prompt,omitempty"`
}

DynamicMappingsInputEntry defines model for DynamicMappingsInputEntry.

type DynamicMappingsInputMappedValue

type DynamicMappingsInputMappedValue struct {
	MappedDisplayValue string `json:"mappedDisplayValue"`
	MappedValue        string `json:"mappedValue"`
}

DynamicMappingsInputMappedValue defines model for DynamicMappingsInputMappedValue.

type FieldChangedEvent

type FieldChangedEvent struct {
	// Enabled If always, the integration will monitor for field changes by default.
	Enabled FieldChangedEventEnabled `json:"enabled"`
}

FieldChangedEvent Configuration for detecting when fields are changed.

type FieldChangedEventEnabled

type FieldChangedEventEnabled string

FieldChangedEventEnabled If always, the integration will monitor for field changes by default.

const (
	FieldChangedEventEnabledAlways FieldChangedEventEnabled = "always"
)

Defines values for FieldChangedEventEnabled.

func (FieldChangedEventEnabled) Valid

func (e FieldChangedEventEnabled) Valid() bool

Valid indicates whether the value is a known member of the FieldChangedEventEnabled enum.

type FieldCreatedEvent

type FieldCreatedEvent struct {
	// Enabled If always, the integration will monitor for new fields by default.
	Enabled FieldCreatedEventEnabled `json:"enabled"`
}

FieldCreatedEvent Configuration for detecting when new fields are created.

type FieldCreatedEventEnabled

type FieldCreatedEventEnabled string

FieldCreatedEventEnabled If always, the integration will monitor for new fields by default.

const (
	FieldCreatedEventEnabledAlways FieldCreatedEventEnabled = "always"
)

Defines values for FieldCreatedEventEnabled.

func (FieldCreatedEventEnabled) Valid

func (e FieldCreatedEventEnabled) Valid() bool

Valid indicates whether the value is a known member of the FieldCreatedEventEnabled enum.

type FieldDefinition

type FieldDefinition struct {
	// Association Relationship information for a field to another object
	Association *AssociationDefinition `json:"association,omitempty"`

	// Description Optional description of the field
	Description *string `json:"description,omitempty"`

	// DisplayName The human-readable name of the field
	DisplayName string `json:"displayName"`

	// FieldName The identifier of the field
	FieldName string `json:"fieldName"`

	// Indexed Indicates if the field should be indexed for faster search
	Indexed *bool `json:"indexed,omitempty"`

	// NumericOptions Additional options for numeric fields
	NumericOptions *NumericFieldOptions `json:"numericOptions,omitempty"`

	// Required Indicates if the field is required
	Required *bool `json:"required,omitempty"`

	// StringOptions Additional options for string fields
	StringOptions *StringFieldOptions `json:"stringOptions,omitempty"`

	// Unique Indicates if the field must be unique across all records
	Unique *bool `json:"unique,omitempty"`

	// ValueType The data type of the field. Valid values are string, boolean, date, datetime, singleSelect, multiSelect, int, float, reference
	ValueType string `json:"valueType"`
}

FieldDefinition Field definition for creating or updating custom fields

type FieldDeletedEvent

type FieldDeletedEvent struct {
	// Enabled If always, the integration will monitor for deleted fields by default.
	Enabled FieldDeletedEventEnabled `json:"enabled"`
}

FieldDeletedEvent Configuration for detecting when fields are deleted.

type FieldDeletedEventEnabled

type FieldDeletedEventEnabled string

FieldDeletedEventEnabled If always, the integration will monitor for deleted fields by default.

const (
	FieldDeletedEventEnabledAlways FieldDeletedEventEnabled = "always"
)

Defines values for FieldDeletedEventEnabled.

func (FieldDeletedEventEnabled) Valid

func (e FieldDeletedEventEnabled) Valid() bool

Valid indicates whether the value is a known member of the FieldDeletedEventEnabled enum.

type FieldMetadata

type FieldMetadata struct {
	// DisplayName The display name of the field from the provider API.
	DisplayName string `json:"displayName"`

	// FieldName The name of the field from the provider API.
	FieldName string `json:"fieldName"`

	// IsCustom Whether the field is custom field.
	IsCustom *bool `json:"isCustom,omitempty"`

	// IsRequired Whether the field is required when creating a new record.
	IsRequired *bool `json:"isRequired,omitempty"`

	// ProviderType Raw field type from the provider API.
	ProviderType string `json:"providerType,omitempty"`

	// ReadOnly Whether the field is read-only.
	ReadOnly *bool `json:"readOnly,omitempty"`

	// ReferenceTo The list of object types this field references. Only applicable if the providerType is a lookup/reference field.
	ReferenceTo []string `json:"referenceTo,omitempty"`

	// ValueType A normalized field type
	ValueType FieldMetadataValueType `json:"valueType,omitempty"`

	// Values If the valueType is singleSelect or multiSelect, this is a list of possible values
	Values []FieldValue `json:"values,omitempty"`
}

FieldMetadata Metadata about a field. Please note that different providers have different levels of support for field metadata. Please reach out to support@withampersand.com if need expanded support for a particular provider.

type FieldMetadataValueType

type FieldMetadataValueType string

FieldMetadataValueType A normalized field type

const (
	Boolean      FieldMetadataValueType = "boolean"
	Date         FieldMetadataValueType = "date"
	Datetime     FieldMetadataValueType = "datetime"
	Float        FieldMetadataValueType = "float"
	Int          FieldMetadataValueType = "int"
	MultiSelect  FieldMetadataValueType = "multiSelect"
	Other        FieldMetadataValueType = "other"
	Reference    FieldMetadataValueType = "reference"
	SingleSelect FieldMetadataValueType = "singleSelect"
	String       FieldMetadataValueType = "string"
)

Defines values for FieldMetadataValueType.

func (FieldMetadataValueType) Valid

func (e FieldMetadataValueType) Valid() bool

Valid indicates whether the value is a known member of the FieldMetadataValueType enum.

type FieldSetting

type FieldSetting struct {
	// Default Only use one of stringValue, integerValue, booleanValue.
	Default *FieldSettingDefault `json:"default,omitempty"`

	// WriteOnCreate Whether the default value should be applied when creating a record.
	WriteOnCreate FieldSettingWriteOnCreate `json:"writeOnCreate,omitempty"`

	// WriteOnUpdate Whether the default value should be applied when updating a record.
	// - always: Always write to the field on update
	// - never: Never write to the field on update
	// - ifEmpty: Only write to the field if it's currently empty (unset or empty string).
	WriteOnUpdate FieldSettingWriteOnUpdate `json:"writeOnUpdate,omitempty"`
}

FieldSetting defines model for FieldSetting.

type FieldSettingDefault

type FieldSettingDefault struct {
	// BooleanValue The default boolean value to apply to a field
	BooleanValue *bool `json:"booleanValue,omitempty"`

	// IntegerValue The default integer value to apply to a field
	IntegerValue *int `json:"integerValue,omitempty"`

	// StringValue The default string value to apply to a field
	StringValue *string `json:"stringValue,omitempty"`
}

FieldSettingDefault Only use one of stringValue, integerValue, booleanValue.

type FieldSettingWriteOnCreate

type FieldSettingWriteOnCreate string

FieldSettingWriteOnCreate Whether the default value should be applied when creating a record.

const (
	FieldSettingWriteOnCreateAlways FieldSettingWriteOnCreate = "always"
	FieldSettingWriteOnCreateNever  FieldSettingWriteOnCreate = "never"
)

Defines values for FieldSettingWriteOnCreate.

func (FieldSettingWriteOnCreate) Valid

func (e FieldSettingWriteOnCreate) Valid() bool

Valid indicates whether the value is a known member of the FieldSettingWriteOnCreate enum.

type FieldSettingWriteOnUpdate

type FieldSettingWriteOnUpdate string

FieldSettingWriteOnUpdate Whether the default value should be applied when updating a record. - always: Always write to the field on update - never: Never write to the field on update - ifEmpty: Only write to the field if it's currently empty (unset or empty string).

const (
	FieldSettingWriteOnUpdateAlways  FieldSettingWriteOnUpdate = "always"
	FieldSettingWriteOnUpdateIfEmpty FieldSettingWriteOnUpdate = "ifEmpty"
	FieldSettingWriteOnUpdateNever   FieldSettingWriteOnUpdate = "never"
)

Defines values for FieldSettingWriteOnUpdate.

func (FieldSettingWriteOnUpdate) Valid

func (e FieldSettingWriteOnUpdate) Valid() bool

Valid indicates whether the value is a known member of the FieldSettingWriteOnUpdate enum.

type FieldUpsertResult

type FieldUpsertResult struct {
	// Action Action taken (create, update, none)
	Action string `json:"action"`

	// FieldName Name of the field
	FieldName string `json:"fieldName"`

	// Metadata Provider-specific metadata about the field
	Metadata *map[string]interface{} `json:"metadata,omitempty"`

	// Warnings Warnings that occurred during the upsert operation
	Warnings *[]string `json:"warnings,omitempty"`
}

FieldUpsertResult Result of an upsert operation for a single field

type FieldValue

type FieldValue struct {
	// DisplayValue The human-readable display value
	DisplayValue string `json:"displayValue"`

	// Value The internal value used by the system
	Value string `json:"value"`
}

FieldValue Represents a field value

type GenerateConnectionJSONRequestBody

type GenerateConnectionJSONRequestBody = GenerateConnectionRequest

GenerateConnectionJSONRequestBody defines body for GenerateConnection for application/json ContentType.

type GenerateConnectionRequest

type GenerateConnectionRequest struct {
	// ApiKey The API key to use for the connection.
	ApiKey    *string `json:"apiKey,omitempty"`
	BasicAuth *struct {
		// Password The password to use for the connection.
		Password string `json:"password"`

		// Username The username to use for the connection.
		Username string `json:"username"`
	} `json:"basicAuth,omitempty"`

	// ConsumerName The name of the consumer that has access to this installation.
	ConsumerName *string `json:"consumerName,omitempty"`

	// ConsumerRef The consumer reference.
	ConsumerRef string `json:"consumerRef"`

	// CustomAuth Values used for custom auth input variables. Most values are strings (API keys, tokens, etc.), but structured values like arrays are also accepted — for example, googleWorkspaceDelegation sends a `scopes` array alongside the service account key.
	CustomAuth *map[string]interface{} `json:"customAuth,omitempty"`

	// GroupName The name of the user group that has access to this installation.
	GroupName *string `json:"groupName,omitempty"`

	// GroupRef The ID of the user group that has access to this installation.
	GroupRef                string                   `json:"groupRef"`
	Oauth2AuthorizationCode *Oauth2AuthorizationCode `json:"oauth2AuthorizationCode,omitempty"`
	Oauth2ClientCredentials *struct {
		// ClientId The client ID to use for the connection.
		ClientId string `json:"clientId"`

		// ClientSecret The client secret to use for the connection.
		ClientSecret string `json:"clientSecret"`

		// Scopes The scopes for the tokens.
		Scopes *[]string `json:"scopes,omitempty"`
	} `json:"oauth2ClientCredentials,omitempty"`
	Oauth2PasswordCredentials *struct {
		// ClientId The client ID to use for the connection.
		ClientId string `json:"clientId"`

		// ClientSecret The client secret to use for the connection.
		ClientSecret string `json:"clientSecret"`

		// Password The password to use for the connection.
		Password string `json:"password"`

		// Scopes The scopes for the tokens.
		Scopes *[]string `json:"scopes,omitempty"`

		// Username The username to use for the connection.
		Username string `json:"username"`
	} `json:"oauth2PasswordCredentials,omitempty"`

	// Provider The provider name (e.g. "salesforce", "hubspot")
	Provider         string            `json:"provider"`
	ProviderMetadata *ProviderMetadata `json:"providerMetadata,omitempty"`

	// ProviderWorkspaceRef The ID of the provider workspace that this connection belongs to.
	ProviderWorkspaceRef *string `json:"providerWorkspaceRef,omitempty"`
}

GenerateConnectionRequest defines model for GenerateConnectionRequest.

type GetConnectionParams

type GetConnectionParams struct {
	// IncludeCreds Whether to include credentials for `oauth2AuthorizationCode` in the response. If true, `accessToken` and `scopes` are included. To include `refreshToken` as well, set `includeRefreshToken` to true. Default is false.
	IncludeCreds *bool `form:"includeCreds,omitempty" json:"includeCreds,omitempty"`

	// IncludeRefreshToken Whether to include `refreshToken` for `oauth2AuthorizationCode` credentials in the response (along with `accessToken` and `scopes`). If true, the `includeCreds` query parameter will be ignored. Default is false.
	IncludeRefreshToken *bool `form:"includeRefreshToken,omitempty" json:"includeRefreshToken,omitempty"`

	// Refresh Whether to refresh the access token. If value is `ifExpired`, the access token will be refreshed only if it has expired. If value is `force`, the access token will be refreshed regardless of its expiration.
	Refresh *GetConnectionParamsRefresh `form:"refresh,omitempty" json:"refresh,omitempty"`
}

GetConnectionParams defines parameters for GetConnection.

type GetConnectionParamsRefresh

type GetConnectionParamsRefresh string

GetConnectionParamsRefresh defines parameters for GetConnection.

const (
	Force     GetConnectionParamsRefresh = "force"
	IfExpired GetConnectionParamsRefresh = "ifExpired"
)

Defines values for GetConnectionParamsRefresh.

func (GetConnectionParamsRefresh) Valid

func (e GetConnectionParamsRefresh) Valid() bool

Valid indicates whether the value is a known member of the GetConnectionParamsRefresh enum.

type GetDestinationParams

type GetDestinationParams struct {
	// IncludeSecrets Include secrets in the response
	IncludeSecrets *bool `form:"includeSecrets,omitempty" json:"includeSecrets,omitempty"`

	// Rotate Rotate the destination secrets
	Rotate *bool `form:"rotate,omitempty" json:"rotate,omitempty"`
}

GetDestinationParams defines parameters for GetDestination.

type GetHydratedRevisionParams

type GetHydratedRevisionParams struct {
	// ConnectionId The ID of the consumer's connection to the SaaS provider. This connection's credentials are used to fetch field metadata from the provider's API.
	ConnectionId string `form:"connectionId" json:"connectionId"`
}

GetHydratedRevisionParams defines parameters for GetHydratedRevision.

type GetObjectMetadataForConnectionParams

type GetObjectMetadataForConnectionParams struct {
	// GroupRef The ID of the user group whose connection should be used to fetch the metadata.
	GroupRef string `form:"groupRef" json:"groupRef"`

	// ExcludeReadOnly Excludes fields where `ReadOnly` is `true` from the response.
	ExcludeReadOnly *bool `form:"excludeReadOnly,omitempty" json:"excludeReadOnly,omitempty"`
}

GetObjectMetadataForConnectionParams defines parameters for GetObjectMetadataForConnection.

type GetObjectMetadataForInstallationParams

type GetObjectMetadataForInstallationParams struct {
	// GroupRef The ID of the user group that has access to this installation.
	GroupRef string `form:"groupRef" json:"groupRef"`

	// ExcludeReadOnly Excludes fields where `ReadOnly` is `true` from the response.
	ExcludeReadOnly *bool `form:"excludeReadOnly,omitempty" json:"excludeReadOnly,omitempty"`
}

GetObjectMetadataForInstallationParams defines parameters for GetObjectMetadataForInstallation.

type GetProjectParams

type GetProjectParams struct {
	// IncludeEntitlements If true, the response includes the project's entitlements (plan-based feature flags). Defaults to false.
	IncludeEntitlements *bool `form:"includeEntitlements,omitempty" json:"includeEntitlements,omitempty"`
}

GetProjectParams defines parameters for GetProject.

type Group

type Group struct {
	// CreateTime The time the group was created.
	CreateTime time.Time `json:"createTime"`

	// GroupName The name of the user group that has access to this installation.
	GroupName string `json:"groupName"`

	// GroupRef The ID of the user group that has access to this installation.
	GroupRef string `json:"groupRef"`

	// ProjectId The Ampersand project ID.
	ProjectId string `json:"projectId"`

	// UpdateTime The time the group was last updated.
	UpdateTime *time.Time `json:"updateTime,omitempty"`
}

Group defines model for Group.

type HydratedIntegration

type HydratedIntegration struct {
	DisplayName string                    `json:"displayName,omitempty"`
	Module      string                    `json:"module,omitempty"`
	Name        string                    `json:"name"`
	Provider    string                    `json:"provider"`
	Proxy       *HydratedIntegrationProxy `json:"proxy,omitempty"`
	Read        *HydratedIntegrationRead  `json:"read,omitempty"`
	Write       *HydratedIntegrationWrite `json:"write,omitempty"`
}

HydratedIntegration defines model for HydratedIntegration.

type HydratedIntegrationField

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

HydratedIntegrationField defines model for HydratedIntegrationField.

func (HydratedIntegrationField) AsHydratedIntegrationFieldExistent

func (t HydratedIntegrationField) AsHydratedIntegrationFieldExistent() (HydratedIntegrationFieldExistent, error)

AsHydratedIntegrationFieldExistent returns the union data inside the HydratedIntegrationField as a HydratedIntegrationFieldExistent

func (HydratedIntegrationField) AsIntegrationFieldMapping

func (t HydratedIntegrationField) AsIntegrationFieldMapping() (IntegrationFieldMapping, error)

AsIntegrationFieldMapping returns the union data inside the HydratedIntegrationField as a IntegrationFieldMapping

func (*HydratedIntegrationField) FromHydratedIntegrationFieldExistent

func (t *HydratedIntegrationField) FromHydratedIntegrationFieldExistent(v HydratedIntegrationFieldExistent) error

FromHydratedIntegrationFieldExistent overwrites any union data inside the HydratedIntegrationField as the provided HydratedIntegrationFieldExistent

func (*HydratedIntegrationField) FromIntegrationFieldMapping

func (t *HydratedIntegrationField) FromIntegrationFieldMapping(v IntegrationFieldMapping) error

FromIntegrationFieldMapping overwrites any union data inside the HydratedIntegrationField as the provided IntegrationFieldMapping

func (HydratedIntegrationField) MarshalJSON

func (t HydratedIntegrationField) MarshalJSON() ([]byte, error)

func (*HydratedIntegrationField) MergeHydratedIntegrationFieldExistent

func (t *HydratedIntegrationField) MergeHydratedIntegrationFieldExistent(v HydratedIntegrationFieldExistent) error

MergeHydratedIntegrationFieldExistent performs a merge with any union data inside the HydratedIntegrationField, using the provided HydratedIntegrationFieldExistent

func (*HydratedIntegrationField) MergeIntegrationFieldMapping

func (t *HydratedIntegrationField) MergeIntegrationFieldMapping(v IntegrationFieldMapping) error

MergeIntegrationFieldMapping performs a merge with any union data inside the HydratedIntegrationField, using the provided IntegrationFieldMapping

func (*HydratedIntegrationField) UnmarshalJSON

func (t *HydratedIntegrationField) UnmarshalJSON(b []byte) error

type HydratedIntegrationFieldExistent

type HydratedIntegrationFieldExistent struct {
	DisplayName string `json:"displayName"`
	FieldName   string `json:"fieldName"`

	// MapToDisplayName The display name to map to in the destination.
	MapToDisplayName string `json:"mapToDisplayName,omitempty"`

	// MapToName The field name to map to in the destination.
	MapToName string `json:"mapToName,omitempty"`
}

HydratedIntegrationFieldExistent defines model for HydratedIntegrationFieldExistent.

type HydratedIntegrationObject

type HydratedIntegrationObject struct {
	// AllFields This is a list of all fields on the object for a particular SaaS instance, including their display names. Prefer using allFieldsMetadata instead.
	// Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set
	AllFields *[]HydratedIntegrationField `json:"allFields,omitempty"`

	// AllFieldsMetadata This is a map of all fields on the object including their metadata (such as display name and type), the keys of the map are the field names.
	AllFieldsMetadata *map[string]FieldMetadata `json:"allFieldsMetadata,omitempty"`
	Backfill          *Backfill                 `json:"backfill,omitempty"`
	Destination       string                    `json:"destination"`
	DisplayName       string                    `json:"displayName"`

	// Error Error message if there was an issue hydrating this object.
	Error string `json:"error,omitempty"`

	// MapToDisplayName A display name to map to.
	MapToDisplayName string `json:"mapToDisplayName,omitempty"`

	// MapToName An object name to map to.
	MapToName          string                      `json:"mapToName,omitempty"`
	ObjectName         string                      `json:"objectName"`
	OptionalFields     *[]HydratedIntegrationField `json:"optionalFields,omitempty"`
	OptionalFieldsAuto *OptionalFieldsAutoOption   `json:"optionalFieldsAuto,omitempty"`
	RequiredFields     *[]HydratedIntegrationField `json:"requiredFields,omitempty"`
	Schedule           string                      `json:"schedule"`
}

HydratedIntegrationObject defines model for HydratedIntegrationObject.

type HydratedIntegrationProxy

type HydratedIntegrationProxy struct {
	Enabled *bool `json:"enabled,omitempty"`

	// UseModule Default is false. If this is set to true, the base URL for the proxy action will be the module's base URL. Otherwise, it is assumed that the base URL is the provider's root base URL.
	UseModule *bool `json:"useModule,omitempty"`
}

HydratedIntegrationProxy defines model for HydratedIntegrationProxy.

type HydratedIntegrationRead

type HydratedIntegrationRead struct {
	Objects *[]HydratedIntegrationObject `json:"objects,omitempty"`
}

HydratedIntegrationRead defines model for HydratedIntegrationRead.

type HydratedIntegrationWrite

type HydratedIntegrationWrite struct {
	Objects *[]HydratedIntegrationWriteObject `json:"objects,omitempty"`
}

HydratedIntegrationWrite defines model for HydratedIntegrationWrite.

type HydratedIntegrationWriteObject

type HydratedIntegrationWriteObject struct {
	DisplayName string `json:"displayName"`
	ObjectName  string `json:"objectName"`

	// ValueDefaults Configuration to set default write values for object fields.
	ValueDefaults *ValueDefaults `json:"valueDefaults,omitempty"`
}

HydratedIntegrationWriteObject defines model for HydratedIntegrationWriteObject.

type HydratedRevision

type HydratedRevision struct {
	Content HydratedIntegration `json:"content"`

	// CreateTime The time the revision was created.
	CreateTime time.Time `json:"createTime"`

	// Id The revision ID.
	Id string `json:"id"`

	// SpecVersion The spec version string.
	SpecVersion string `json:"specVersion"`
}

HydratedRevision defines model for HydratedRevision.

type InputValidationIssue

type InputValidationIssue = ApiProblem

InputValidationIssue defines model for InputValidationIssue.

type InputValidationProblem

type InputValidationProblem = ApiProblem

InputValidationProblem defines model for InputValidationProblem.

type Installation

type Installation struct {
	Config     Config     `json:"config"`
	Connection Connection `json:"connection"`

	// CreateTime The time the installation was created.
	CreateTime time.Time `json:"createTime"`

	// CreatedBy The person who did the installation, in the format of "consumer:{consumer-id}".
	CreatedBy string `json:"createdBy"`
	Group     *Group `json:"group,omitempty"`

	// HealthStatus The health status of the installation.
	HealthStatus InstallationHealthStatus `json:"healthStatus"`

	// Id The installation ID.
	Id string `json:"id"`

	// IntegrationId The integration ID.
	IntegrationId string `json:"integrationId"`

	// LastOperationStatus The status of the latest operation for this installation.
	LastOperationStatus *InstallationLastOperationStatus `json:"lastOperationStatus,omitempty"`

	// ProjectId The Ampersand project ID.
	ProjectId string `json:"projectId"`

	// UpdateTime The time the installation was last updated with a new config.
	UpdateTime *time.Time `json:"updateTime,omitempty"`
}

Installation defines model for Installation.

type InstallationHealthStatus

type InstallationHealthStatus string

InstallationHealthStatus The health status of the installation.

const (
	Healthy   InstallationHealthStatus = "healthy"
	Unhealthy InstallationHealthStatus = "unhealthy"
)

Defines values for InstallationHealthStatus.

func (InstallationHealthStatus) Valid

func (e InstallationHealthStatus) Valid() bool

Valid indicates whether the value is a known member of the InstallationHealthStatus enum.

type InstallationLastOperationStatus

type InstallationLastOperationStatus string

InstallationLastOperationStatus The status of the latest operation for this installation.

const (
	Failure    InstallationLastOperationStatus = "failure"
	InProgress InstallationLastOperationStatus = "in_progress"
	Success    InstallationLastOperationStatus = "success"
)

Defines values for InstallationLastOperationStatus.

func (InstallationLastOperationStatus) Valid

Valid indicates whether the value is a known member of the InstallationLastOperationStatus enum.

type Integration

type Integration struct {
	// CreateTime The time the integration was created.
	CreateTime time.Time `json:"createTime"`

	// Id The integration ID.
	Id             string   `json:"id"`
	LatestRevision Revision `json:"latestRevision"`

	// Name The integration name.
	Name string `json:"name"`

	// ProjectId The Ampersand project ID.
	ProjectId string `json:"projectId"`

	// Provider The SaaS provider that this integration connects to.
	Provider string `json:"provider"`

	// UpdateTime The time the integration was last updated.
	UpdateTime *time.Time `json:"updateTime,omitempty"`
}

Integration defines model for Integration.

type Integration2

type Integration2 struct {
	DisplayName string                `json:"displayName,omitempty"`
	Module      string                `json:"module,omitempty"`
	Name        string                `json:"name"`
	Provider    string                `json:"provider"`
	Proxy       *IntegrationProxy     `json:"proxy,omitempty"`
	Read        *IntegrationRead      `json:"read,omitempty"`
	Subscribe   *IntegrationSubscribe `json:"subscribe,omitempty"`

	// WatchSchema Configuration for monitoring provider schema changes.
	WatchSchema *WatchSchema      `json:"watchSchema,omitempty"`
	Write       *IntegrationWrite `json:"write,omitempty"`
}

Integration2 defines model for Integration-2.

type IntegrationField

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

IntegrationField defines model for IntegrationField.

func (IntegrationField) AsIntegrationFieldExistent

func (t IntegrationField) AsIntegrationFieldExistent() (IntegrationFieldExistent, error)

AsIntegrationFieldExistent returns the union data inside the IntegrationField as a IntegrationFieldExistent

func (IntegrationField) AsIntegrationFieldMapping

func (t IntegrationField) AsIntegrationFieldMapping() (IntegrationFieldMapping, error)

AsIntegrationFieldMapping returns the union data inside the IntegrationField as a IntegrationFieldMapping

func (*IntegrationField) FromIntegrationFieldExistent

func (t *IntegrationField) FromIntegrationFieldExistent(v IntegrationFieldExistent) error

FromIntegrationFieldExistent overwrites any union data inside the IntegrationField as the provided IntegrationFieldExistent

func (*IntegrationField) FromIntegrationFieldMapping

func (t *IntegrationField) FromIntegrationFieldMapping(v IntegrationFieldMapping) error

FromIntegrationFieldMapping overwrites any union data inside the IntegrationField as the provided IntegrationFieldMapping

func (IntegrationField) MarshalJSON

func (t IntegrationField) MarshalJSON() ([]byte, error)

func (*IntegrationField) MergeIntegrationFieldExistent

func (t *IntegrationField) MergeIntegrationFieldExistent(v IntegrationFieldExistent) error

MergeIntegrationFieldExistent performs a merge with any union data inside the IntegrationField, using the provided IntegrationFieldExistent

func (*IntegrationField) MergeIntegrationFieldMapping

func (t *IntegrationField) MergeIntegrationFieldMapping(v IntegrationFieldMapping) error

MergeIntegrationFieldMapping performs a merge with any union data inside the IntegrationField, using the provided IntegrationFieldMapping

func (*IntegrationField) UnmarshalJSON

func (t *IntegrationField) UnmarshalJSON(b []byte) error

type IntegrationFieldExistent

type IntegrationFieldExistent struct {
	FieldName string `json:"fieldName"`

	// MapToDisplayName The display name to map to.
	MapToDisplayName string `json:"mapToDisplayName,omitempty"`

	// MapToName The field name to map to.
	MapToName string `json:"mapToName,omitempty"`
}

IntegrationFieldExistent defines model for IntegrationFieldExistent.

type IntegrationFieldMapping

type IntegrationFieldMapping struct {
	Default          *string `json:"default,omitempty"`
	MapToDisplayName *string `json:"mapToDisplayName,omitempty"`
	MapToName        string  `json:"mapToName"`
	Prompt           *string `json:"prompt,omitempty"`
}

IntegrationFieldMapping defines model for IntegrationFieldMapping.

type IntegrationObject

type IntegrationObject struct {
	Backfill    *Backfill `json:"backfill,omitempty"`
	Delivery    *Delivery `json:"delivery,omitempty"`
	Destination string    `json:"destination"`

	// Enabled If set to `always`, Ampersand reads this object for every installation even if the customer never selects it (or it isn't present) in the installation config.
	Enabled IntegrationObjectEnabled `json:"enabled,omitempty"`

	// MapToDisplayName A display name to map to.
	MapToDisplayName string `json:"mapToDisplayName,omitempty"`

	// MapToName An object name to map to.
	MapToName          string                    `json:"mapToName,omitempty"`
	ObjectName         string                    `json:"objectName"`
	OptionalFields     *[]IntegrationField       `json:"optionalFields,omitempty"`
	OptionalFieldsAuto *OptionalFieldsAutoOption `json:"optionalFieldsAuto,omitempty"`
	RequiredFields     *[]IntegrationField       `json:"requiredFields,omitempty"`
	Schedule           string                    `json:"schedule"`
}

IntegrationObject defines model for IntegrationObject.

type IntegrationObjectEnabled

type IntegrationObjectEnabled string

IntegrationObjectEnabled If set to `always`, Ampersand reads this object for every installation even if the customer never selects it (or it isn't present) in the installation config.

const (
	IntegrationObjectEnabledAlways IntegrationObjectEnabled = "always"
)

Defines values for IntegrationObjectEnabled.

func (IntegrationObjectEnabled) Valid

func (e IntegrationObjectEnabled) Valid() bool

Valid indicates whether the value is a known member of the IntegrationObjectEnabled enum.

type IntegrationProxy

type IntegrationProxy struct {
	Enabled *bool `json:"enabled,omitempty"`

	// UseModule Default is false. If this is set to true, the base URL for the proxy action will be the module's base URL. Otherwise, it is assumed that the base URL is the provider's root base URL.
	UseModule *bool `json:"useModule,omitempty"`
}

IntegrationProxy defines model for IntegrationProxy.

type IntegrationRead

type IntegrationRead struct {
	Objects *[]IntegrationObject `json:"objects,omitempty"`
}

IntegrationRead defines model for IntegrationRead.

type IntegrationSubscribe

type IntegrationSubscribe struct {
	Objects *[]IntegrationSubscribeObject `json:"objects,omitempty"`
}

IntegrationSubscribe defines model for IntegrationSubscribe.

type IntegrationSubscribeObject

type IntegrationSubscribeObject struct {
	AssociationChangeEvent *AssociationChangeEvent `json:"associationChangeEvent,omitempty"`
	CreateEvent            *CreateEvent            `json:"createEvent,omitempty"`
	DeleteEvent            *DeleteEvent            `json:"deleteEvent,omitempty"`
	Destination            string                  `json:"destination"`

	// InheritFieldsAndMapping If true, the integration will inherit the fields and mapping from the read object.
	InheritFieldsAndMapping bool         `json:"inheritFieldsAndMapping,omitempty"`
	ObjectName              string       `json:"objectName"`
	OtherEvents             *OtherEvents `json:"otherEvents,omitempty"`
	UpdateEvent             *UpdateEvent `json:"updateEvent,omitempty"`
}

IntegrationSubscribeObject defines model for IntegrationSubscribeObject.

type IntegrationWrite

type IntegrationWrite struct {
	Objects *[]IntegrationWriteObject `json:"objects,omitempty"`
}

IntegrationWrite defines model for IntegrationWrite.

type IntegrationWriteObject

type IntegrationWriteObject struct {
	// InheritMapping If true, the write object will inherit the mapping from the read object. If false, the write object will have no mapping.
	InheritMapping *bool  `json:"inheritMapping,omitempty"`
	ObjectName     string `json:"objectName"`

	// ValueDefaults Configuration to set default write values for object fields.
	ValueDefaults *ValueDefaults `json:"valueDefaults,omitempty"`
}

IntegrationWriteObject defines model for IntegrationWriteObject.

type Invite

type Invite struct {
	// CreateTime The time the invite was created.
	CreateTime time.Time `json:"createTime"`

	// Id The invite ID.
	Id string `json:"id"`

	// InvitedEmail The email address of the person invited.
	InvitedEmail string `json:"invitedEmail"`

	// ParentId The ID of the parent (e.g. org ID).
	ParentId string `json:"parentId"`

	// ParentType The type of entity that the person is invited to.
	ParentType InviteParentType `json:"parentType"`

	// Status The status of the invite.
	Status InviteStatus `json:"status"`

	// UpdateTime The time the invite was updated.
	UpdateTime *time.Time `json:"updateTime,omitempty"`
}

Invite defines model for Invite.

type InviteParentType

type InviteParentType string

InviteParentType The type of entity that the person is invited to.

const (
	InviteParentTypeOrg InviteParentType = "org"
)

Defines values for InviteParentType.

func (InviteParentType) Valid

func (e InviteParentType) Valid() bool

Valid indicates whether the value is a known member of the InviteParentType enum.

type InviteStatus

type InviteStatus string

InviteStatus The status of the invite.

const (
	Accepted InviteStatus = "accepted"
	Expired  InviteStatus = "expired"
	Pending  InviteStatus = "pending"
	Revoked  InviteStatus = "revoked"
)

Defines values for InviteStatus.

func (InviteStatus) Valid

func (e InviteStatus) Valid() bool

Valid indicates whether the value is a known member of the InviteStatus enum.

type JSONPatchOperation

type JSONPatchOperation struct {
	// Op The operation to perform.
	// - "add": Adds a new field or replaces an existing one at the specified path
	// - "remove": Removes the field at the specified path
	// - "replace": Replaces the value at the specified path
	Op JSONPatchOperationOp `json:"op"`

	// Path JSON Pointer path to the field to operate on (RFC 6901).
	// All paths must start with "/" (e.g., "/schedule", "/selectedFields/phone").
	Path string `json:"path"`

	// Value The value to set for add/replace operations.
	// Not used for remove operations.
	Value interface{} `json:"value,omitempty"`
}

JSONPatchOperation Represents a single JSON Patch operation (RFC 6902). Only supports add, remove, and replace operations for config updates.

type JSONPatchOperationOp

type JSONPatchOperationOp string

JSONPatchOperationOp The operation to perform. - "add": Adds a new field or replaces an existing one at the specified path - "remove": Removes the field at the specified path - "replace": Replaces the value at the specified path

const (
	Add     JSONPatchOperationOp = "add"
	Remove  JSONPatchOperationOp = "remove"
	Replace JSONPatchOperationOp = "replace"
)

Defines values for JSONPatchOperationOp.

func (JSONPatchOperationOp) Valid

func (e JSONPatchOperationOp) Valid() bool

Valid indicates whether the value is a known member of the JSONPatchOperationOp enum.

type JWTKey

type JWTKey struct {
	// Active Whether the JWT key is currently active and can be used for verification
	Active bool `json:"active"`

	// Algorithm The cryptographic algorithm used
	Algorithm JWTKeyAlgorithm `json:"algorithm"`

	// CreateTime Timestamp when the JWT key was created
	CreateTime time.Time `json:"createTime"`

	// Id Unique identifier for the JWT key
	Id openapi_types.UUID `json:"id"`

	// Label Human-readable name for the JWT key
	Label string `json:"label"`

	// ProjectId The project this JWT key belongs to
	ProjectId openapi_types.UUID `json:"projectId"`

	// PublicKeyPem RSA public key in PEM format
	PublicKeyPem string `json:"publicKeyPem"`

	// UpdateTime Timestamp when the JWT key was last updated
	UpdateTime time.Time `json:"updateTime"`
}

JWTKey defines model for JWTKey.

type JWTKeyAlgorithm

type JWTKeyAlgorithm string

JWTKeyAlgorithm The cryptographic algorithm used

const (
	RSA JWTKeyAlgorithm = "RSA"
)

Defines values for JWTKeyAlgorithm.

func (JWTKeyAlgorithm) Valid

func (e JWTKeyAlgorithm) Valid() bool

Valid indicates whether the value is a known member of the JWTKeyAlgorithm enum.

type JWTKeyResponse

type JWTKeyResponse struct {
	// Kid The unique key identifier (key ID) for the created JWT key
	Kid openapi_types.UUID `json:"kid"`
}

JWTKeyResponse defines model for JWTKeyResponse.

type Labels

type Labels map[string]string

Labels defines model for Labels.

type ListApiKeysParams

type ListApiKeysParams struct {
	// Active Whether to include only active API keys. If false, all API keys are included.
	Active *bool `form:"active,omitempty" json:"active,omitempty"`
}

ListApiKeysParams defines parameters for ListApiKeys.

type ListConnectionsParams

type ListConnectionsParams struct {
	// Provider The provider name (e.g. "salesforce", "hubspot")
	Provider *string `form:"provider,omitempty" json:"provider,omitempty"`

	// GroupRef The ID of the user group that has access to this installation.
	GroupRef *string `form:"groupRef,omitempty" json:"groupRef,omitempty"`

	// ConsumerRef The consumer reference.
	ConsumerRef *string `form:"consumerRef,omitempty" json:"consumerRef,omitempty"`
}

ListConnectionsParams defines parameters for ListConnections.

type ListEventTopicRoutesParams

type ListEventTopicRoutesParams struct {
	// TopicId Filter by topic ID.
	TopicId *string `form:"topicId,omitempty" json:"topicId,omitempty"`

	// EventType Filter by notification event type.
	EventType *NotificationEventType `form:"eventType,omitempty" json:"eventType,omitempty"`
}

ListEventTopicRoutesParams defines parameters for ListEventTopicRoutes.

type ListInstallationsForProjectParams

type ListInstallationsForProjectParams struct {
	// GroupRef The ID that your app uses to identify a group of users (e.g. an org ID, workspace ID, or team ID). When provided, only returns installations belonging to this group.
	GroupRef *string `form:"groupRef,omitempty" json:"groupRef,omitempty"`
}

ListInstallationsForProjectParams defines parameters for ListInstallationsForProject.

type ListInstallationsParams

type ListInstallationsParams struct {
	// GroupRef The ID that your app uses to identify a group of users (e.g. an org ID, workspace ID, or team ID). When provided, only returns installations belonging to this group.
	GroupRef *string `form:"groupRef,omitempty" json:"groupRef,omitempty"`
}

ListInstallationsParams defines parameters for ListInstallations.

type ListJWTKeysParams

type ListJWTKeysParams struct {
	// Active Filter to only return active JWT keys
	Active *bool `form:"active,omitempty" json:"active,omitempty"`
}

ListJWTKeysParams defines parameters for ListJWTKeys.

type ListOperationsParams

type ListOperationsParams struct {
	// PageSize The number of operations to return.
	PageSize *int `form:"pageSize,omitempty" json:"pageSize,omitempty"`

	// PageToken A cursor that can be passed to paginate through multiple pages of operations.
	PageToken *string `form:"pageToken,omitempty" json:"pageToken,omitempty"`
}

ListOperationsParams defines parameters for ListOperations.

type ListTopicDestinationRoutesParams

type ListTopicDestinationRoutesParams struct {
	// TopicId Filter by topic ID.
	TopicId *string `form:"topicId,omitempty" json:"topicId,omitempty"`

	// DestinationId Filter by destination ID.
	DestinationId *string `form:"destinationId,omitempty" json:"destinationId,omitempty"`
}

ListTopicDestinationRoutesParams defines parameters for ListTopicDestinationRoutes.

type Log

type Log struct {
	// Message The log message object.
	Message Log_Message `json:"message"`

	// Severity The severity of the log.
	Severity string `json:"severity"`

	// Timestamp The time the log was created.
	Timestamp string `json:"timestamp"`
}

Log defines model for Log.

type Log_Message

type Log_Message struct {
	// Details The details of the log.
	Details *map[string]string `json:"details,omitempty"`

	// Error The error message, if there has been an error.
	Error *string `json:"error,omitempty"`

	// Msg The use-readable message.
	Msg string `json:"msg"`

	// OperationId The operation ID.
	OperationId          *string                `json:"operation_id,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

Log_Message The log message object.

func (Log_Message) Get

func (a Log_Message) Get(fieldName string) (value interface{}, found bool)

Getter for additional properties for Log_Message. Returns the specified element and whether it was found

func (Log_Message) MarshalJSON

func (a Log_Message) MarshalJSON() ([]byte, error)

Override default JSON handling for Log_Message to handle AdditionalProperties

func (*Log_Message) Set

func (a *Log_Message) Set(fieldName string, value interface{})

Setter for additional properties for Log_Message

func (*Log_Message) UnmarshalJSON

func (a *Log_Message) UnmarshalJSON(b []byte) error

Override default JSON handling for Log_Message to handle AdditionalProperties

type Media

type Media struct {
	// DarkMode Media to be used in dark mode.
	DarkMode *MediaTypeDarkMode `json:"darkMode,omitempty"`

	// Regular Media for light/regular mode.
	Regular *MediaTypeRegular `json:"regular,omitempty"`
}

Media defines model for Media.

type MediaTypeDarkMode

type MediaTypeDarkMode struct {
	// IconURL URL to the icon for the provider that is to be used in dark mode.
	IconURL string `json:"iconURL,omitempty"`

	// LogoURL URL to the logo for the provider that is to be used in dark mode.
	LogoURL string `json:"logoURL,omitempty"`
}

MediaTypeDarkMode Media to be used in dark mode.

type MediaTypeRegular

type MediaTypeRegular struct {
	// IconURL URL to the icon for the provider.
	IconURL string `json:"iconURL,omitempty"`

	// LogoURL URL to the logo for the provider.
	LogoURL string `json:"logoURL,omitempty"`
}

MediaTypeRegular Media for light/regular mode.

type MetadataItemInput

type MetadataItemInput struct {
	// DefaultValue Default value for this metadata item
	DefaultValue string `json:"defaultValue,omitempty"`

	// DisplayName The human-readable name for the field
	DisplayName string `json:"displayName,omitempty"`

	// DocsURL URL with more information about how to locate this value
	DocsURL string `json:"docsURL,omitempty"`

	// ModuleDependencies Specifies which modules REQUIRE (depend on) this metadata item. This field lists the modules that depend on/require the metadata item. Example: If "workspace" metadata has moduleDependencies: {crm: {}}, it means the CRM module requires the workspace metadata to function. Each module that needs this metadata item MUST be specified in this field. Even if it is all modules. The empty ModuleDependency {} is for future-proofing in case we need to add additional configuration options.
	ModuleDependencies *ModuleDependencies `json:"moduleDependencies,omitempty"`

	// Name The internal identifier for the metadata field
	Name string `json:"name"`

	// Prompt Human-readable description that can contain instructions on how to collect metadata
	Prompt string `json:"prompt,omitempty"`
}

MetadataItemInput defines model for MetadataItemInput.

type MetadataItemPostAuthentication

type MetadataItemPostAuthentication struct {
	// ModuleDependencies Specifies which modules REQUIRE (depend on) this metadata item. This field lists the modules that depend on/require the metadata item. Example: If "workspace" metadata has moduleDependencies: {crm: {}}, it means the CRM module requires the workspace metadata to function. Each module that needs this metadata item MUST be specified in this field. Even if it is all modules. The empty ModuleDependency {} is for future-proofing in case we need to add additional configuration options.
	ModuleDependencies *ModuleDependencies `json:"moduleDependencies,omitempty"`

	// Name The internal identifier for the metadata field
	Name string `json:"name"`
}

MetadataItemPostAuthentication defines model for MetadataItemPostAuthentication.

type ModuleDependencies

type ModuleDependencies map[string]ModuleDependency

ModuleDependencies Specifies which modules REQUIRE (depend on) this metadata item. This field lists the modules that depend on/require the metadata item. Example: If "workspace" metadata has moduleDependencies: {crm: {}}, it means the CRM module requires the workspace metadata to function. Each module that needs this metadata item MUST be specified in this field. Even if it is all modules. The empty ModuleDependency {} is for future-proofing in case we need to add additional configuration options.

type ModuleDependency

type ModuleDependency = map[string]interface{}

ModuleDependency Dependency for a single module.

type ModuleInfo

type ModuleInfo struct {
	BaseURL     string `json:"baseURL"`
	DisplayName string `json:"displayName"`

	// SubscribeRequirements Declares which auxiliary steps a provider requires to support subscriptions, beyond the per-object subscribe call itself.
	SubscribeRequirements *SubscribeRequirements `json:"subscribeRequirements,omitempty"`

	// Support The supported features for the provider.
	Support Support `json:"support" validate:"required"`
}

ModuleInfo defines model for ModuleInfo.

type Modules

type Modules map[string]ModuleInfo

Modules The registry of provider modules.

type NotificationEventTopicRoute

type NotificationEventTopicRoute struct {
	// CreateTime The time when the event-topic route was created.
	CreateTime time.Time `json:"createTime"`

	// EventType The type of notification event.
	EventType NotificationEventType `json:"eventType"`

	// Id The event-topic route ID.
	Id string `json:"id"`

	// ProjectId The Ampersand project ID.
	ProjectId string `json:"projectId"`

	// TopicId The ID of the topic to route events to.
	TopicId string `json:"topicId"`

	// UpdateTime The time when the event-topic route was last updated.
	UpdateTime *time.Time `json:"updateTime,omitempty"`
}

NotificationEventTopicRoute defines model for NotificationEventTopicRoute.

type NotificationEventType

type NotificationEventType string

NotificationEventType The type of notification event.

const (
	ConnectionCreated          NotificationEventType = "connection.created"
	ConnectionDeleted          NotificationEventType = "connection.deleted"
	ConnectionError            NotificationEventType = "connection.error"
	ConnectionRefreshed        NotificationEventType = "connection.refreshed"
	ConnectionUpdated          NotificationEventType = "connection.updated"
	DestinationWebhookDisabled NotificationEventType = "destination.webhook.disabled"
	InstallationCreated        NotificationEventType = "installation.created"
	InstallationDeleted        NotificationEventType = "installation.deleted"
	InstallationUpdated        NotificationEventType = "installation.updated"
	ReadBackfillDone           NotificationEventType = "read.backfill.done"
	ReadSchedulePaused         NotificationEventType = "read.schedule.paused"
	ReadTriggeredDone          NotificationEventType = "read.triggered.done"
	ReadTriggeredError         NotificationEventType = "read.triggered.error"
	SubscribeCreateError       NotificationEventType = "subscribe.create.error"
	SubscribeCreateSuccess     NotificationEventType = "subscribe.create.success"
	SubscribeDeleteSuccess     NotificationEventType = "subscribe.delete.success"
	SubscribeUpdateSuccess     NotificationEventType = "subscribe.update.success"
	WriteAsyncDone             NotificationEventType = "write.async.done"
)

Defines values for NotificationEventType.

func (NotificationEventType) Valid

func (e NotificationEventType) Valid() bool

Valid indicates whether the value is a known member of the NotificationEventType enum.

type NumericFieldOptions

type NumericFieldOptions struct {
	// DefaultValue Default value for the field
	DefaultValue *float32 `json:"defaultValue,omitempty"`

	// Max Maximum value for numeric fields
	Max *float32 `json:"max,omitempty"`

	// Min Minimum value for numeric fields
	Min *float32 `json:"min,omitempty"`

	// Precision Total number of digits (for decimal types)
	Precision *int `json:"precision,omitempty"`

	// Scale Number of digits to the right of the decimal point (for decimal types)
	Scale *int `json:"scale,omitempty"`
}

NumericFieldOptions Additional options for numeric fields

type Oauth2AuthorizationCode

type Oauth2AuthorizationCode struct {
	// AccessToken The access token for the connection.
	AccessToken *struct {
		ExpiresAt *time.Time `json:"expiresAt,omitempty"`
		IssuedAt  *time.Time `json:"issuedAt,omitempty"`
		Token     string     `json:"token"`
	} `json:"accessToken,omitempty"`

	// RefreshToken The refresh token to use for the connection.
	RefreshToken *struct {
		ExpiresAt *time.Time `json:"expiresAt,omitempty"`
		IssuedAt  *time.Time `json:"issuedAt,omitempty"`
		Token     string     `json:"token"`
	} `json:"refreshToken,omitempty"`

	// Scopes The scopes for the tokens.
	Scopes *[]string `json:"scopes,omitempty"`
}

Oauth2AuthorizationCode defines model for Oauth2AuthorizationCode.

type Oauth2AuthorizationCodeTokensOnly

type Oauth2AuthorizationCodeTokensOnly struct {
	// AccessToken The access token for the connection.
	AccessToken *struct {
		ExpiresAt *time.Time `json:"expiresAt,omitempty"`
		IssuedAt  *time.Time `json:"issuedAt,omitempty"`
		Token     string     `json:"token"`
	} `json:"accessToken,omitempty"`

	// RefreshToken The refresh token to use for the connection.
	RefreshToken *struct {
		ExpiresAt *time.Time `json:"expiresAt,omitempty"`
		IssuedAt  *time.Time `json:"issuedAt,omitempty"`
		Token     string     `json:"token"`
	} `json:"refreshToken,omitempty"`

	// Scopes The scopes for the tokens.
	Scopes *[]string `json:"scopes,omitempty"`
}

Oauth2AuthorizationCodeTokensOnly defines model for Oauth2AuthorizationCodeTokensOnly.

type Oauth2Opts

type Oauth2Opts struct {
	// AccessTokenOpts Configuration that defines how an OAuth 2.0 access token is attached to
	// outbound API requests. When provided, this configuration overrides the
	// default access-token handling behavior for the connector.
	AccessTokenOpts *AccessTokenOpts `json:"accessTokenOpts,omitempty"`

	// Audience A list of URLs that represent the audience for the token, which is needed for some client credential grant flows.
	Audience []string `json:"audience,omitempty"`

	// AuthURL The authorization URL.
	AuthURL       string            `json:"authURL,omitempty"`
	AuthURLParams map[string]string `json:"authURLParams,omitempty"`

	// DocsURL URL with more information about where to retrieve Client ID and Client Secret, etc.
	DocsURL string `json:"docsURL,omitempty"`

	// ExplicitScopesRequired Whether scopes are required to be known ahead of the OAuth flow.
	ExplicitScopesRequired bool `json:"explicitScopesRequired"`

	// ExplicitWorkspaceRequired Whether the workspace is required to be known ahead of the OAuth flow.
	ExplicitWorkspaceRequired bool                `json:"explicitWorkspaceRequired"`
	GrantType                 Oauth2OptsGrantType `json:"grantType"`

	// KeepAliveIntervalHours How many hours between proactive token keep-alive refreshes for this provider.
	// Token-manager adds a random stagger offset on top. If absent, defaults to 24.
	KeepAliveIntervalHours int `json:"keepAliveIntervalHours,omitempty"`

	// ScopeMappings Maps input scopes to their full OAuth scope values with template variable support. Scopes not in this map are passed through unchanged. Needed for some providers.
	ScopeMappings map[string]string `json:"scopeMappings,omitempty"`

	// TokenMetadataFields Fields to be used to extract token metadata from the token response.
	TokenMetadataFields TokenMetadataFields `json:"tokenMetadataFields"`

	// TokenURL The token URL.
	TokenURL string `json:"tokenURL" validate:"required"`
}

Oauth2Opts Configuration for OAuth2.0. Must be provided if authType is oauth2.

type Oauth2OptsGrantType

type Oauth2OptsGrantType string

Oauth2OptsGrantType defines model for Oauth2Opts.GrantType.

const (
	AuthorizationCode     Oauth2OptsGrantType = "authorizationCode"
	AuthorizationCodePKCE Oauth2OptsGrantType = "authorizationCodePKCE"
	ClientCredentials     Oauth2OptsGrantType = "clientCredentials"
	Password              Oauth2OptsGrantType = "password"
)

Defines values for Oauth2OptsGrantType.

func (Oauth2OptsGrantType) Valid

func (e Oauth2OptsGrantType) Valid() bool

Valid indicates whether the value is a known member of the Oauth2OptsGrantType enum.

type OauthConnectJSONBody

type OauthConnectJSONBody struct {
	// ConsumerName The display name for the consumer. Defaults to consumerRef if not provided.
	ConsumerName *string `json:"consumerName,omitempty"`

	// ConsumerRef The ID that your app uses to identify the user whose SaaS credential will be used for this OAuth flow.
	ConsumerRef string `json:"consumerRef"`

	// EnableCSRFProtection This boolean flag is used by the UI library internally. Set it to false or omit it when manually calling this API.
	EnableCSRFProtection *bool `json:"enableCSRFProtection,omitempty"`

	// GroupName The display name for the group. Defaults to groupRef if not provided.
	GroupName *string `json:"groupName,omitempty"`

	// GroupRef Your application's identifier for the organization or workspace that this connection belongs to (e.g. an org ID or team ID).
	GroupRef string `json:"groupRef"`

	// ProjectIdOrName The Ampersand project ID or project name.
	ProjectIdOrName string `json:"projectIdOrName"`

	// Provider The provider that this app connects to.
	Provider string `json:"provider"`

	// ProviderAppId ID of the provider app, returned from the [Create Provider App endpoint](https://docs.withampersand.com/reference/provider-apps/create-provider-app). If omitted, the default provider app that was set up on the Ampersand Dashboard is assumed.
	ProviderAppId    *string           `json:"providerAppId,omitempty"`
	ProviderMetadata *ProviderMetadata `json:"providerMetadata,omitempty"`

	// ProviderWorkspaceRef The identifier for the provider workspace (e.g. the Salesforce subdomain).
	ProviderWorkspaceRef *string `json:"providerWorkspaceRef,omitempty"`
}

OauthConnectJSONBody defines parameters for OauthConnect.

type OauthConnectJSONRequestBody

type OauthConnectJSONRequestBody OauthConnectJSONBody

OauthConnectJSONRequestBody defines body for OauthConnect for application/json ContentType.

type ObjectMetadata

type ObjectMetadata struct {
	// DisplayName Human-readable name of the object
	DisplayName *string `json:"displayName,omitempty"`

	// Fields Map of field metadata keyed by field name
	Fields map[string]FieldMetadata `json:"fields"`

	// MappedObjectName The mapped name of the object as defined in your integration config, if a mapping was applied. Only present when using the installation-scoped metadata endpoint.
	MappedObjectName *string `json:"mappedObjectName,omitempty"`

	// Name The provider name of the object
	Name string `json:"name"`
}

ObjectMetadata defines model for ObjectMetadata.

type Operation

type Operation struct {
	// ActionType The type of action that was performed (`read`, `write`, or `subscribe`).
	ActionType string `json:"actionType"`

	// ConfigId The config ID.
	ConfigId string `json:"configId"`

	// CreateTime The time the operation was created.
	CreateTime *time.Time `json:"createTime,omitempty"`

	// Id Unique identifier for this operation. Use this to fetch operation details or list logs for debugging.
	Id string `json:"id"`

	// InstallationId The Ampersand installation ID (customer instance) that this operation ran for.
	InstallationId string `json:"installationId"`

	// IntegrationId The integration ID.
	IntegrationId string `json:"integrationId"`

	// Metadata Additional operation details (e.g. objects, retry info, read progress, successfulRecordIds).
	Metadata *struct {
		Objects *[]string `json:"objects,omitempty"`

		// Progress Read progress for the operation, reporting records processed and, where available, the estimated total. Present for all read operations.
		Progress *struct {
			InstallationId *string `json:"installationId,omitempty"`
			ObjectName     *string `json:"objectName,omitempty"`
			OperationId    *string `json:"operationId,omitempty"`

			// RecordsEstimatedTotal Only present for some providers (e.g. Salesforce, HubSpot).
			RecordsEstimatedTotal *int `json:"recordsEstimatedTotal,omitempty"`
			RecordsProcessed      *int `json:"recordsProcessed,omitempty"`
		} `json:"progress,omitempty"`
		Retry *struct {
			Attempts     *int       `json:"attempts,omitempty"`
			LastAttempt  *time.Time `json:"lastAttempt,omitempty"`
			LastNotified *time.Time `json:"lastNotified,omitempty"`
		} `json:"retry,omitempty"`

		// SuccessfulRecordIds Provider-assigned IDs of successfully created or updated records. Only present for write operations.
		SuccessfulRecordIds *[]string `json:"successfulRecordIds,omitempty"`
	} `json:"metadata,omitempty"`

	// ProjectId The Ampersand project ID.
	ProjectId string `json:"projectId"`

	// Result A human-readable summary of what the operation accomplished. Examples: `[contact] No new data found`, `Batch write completed (3 succeeded, 1 failed)`. May be absent.
	Result *string `json:"result,omitempty"`

	// Status The status of the operation.
	// - `success`: The operation completed successfully
	// - `failure`: The operation failed
	// - `in_progress`: The operation is currently running
	Status string `json:"status"`
}

Operation defines model for Operation.

type OptionalFieldsAutoOption

type OptionalFieldsAutoOption string

OptionalFieldsAutoOption defines model for OptionalFieldsAutoOption.

const (
	OptionalFieldsAutoOptionAll OptionalFieldsAutoOption = "all"
)

Defines values for OptionalFieldsAutoOption.

func (OptionalFieldsAutoOption) Valid

func (e OptionalFieldsAutoOption) Valid() bool

Valid indicates whether the value is a known member of the OptionalFieldsAutoOption enum.

type Org

type Org struct {
	// CreateTime The time at which the organization was created.
	CreateTime time.Time `json:"createTime"`

	// DefaultTeamId The ID of the Everyone team for the org.
	DefaultTeamId string `json:"defaultTeamId"`

	// Id The organization ID.
	Id string `json:"id"`

	// Label The organization label.
	Label string `json:"label"`

	// UpdateTime The time the organization was updated.
	UpdateTime *time.Time `json:"updateTime,omitempty"`
}

Org defines model for Org.

type OtherEvents

type OtherEvents = []string

OtherEvents defines model for OtherEvents.

type PaginationInfo

type PaginationInfo struct {
	// Done If set to true, this is the last page of results for the given operation. There are no more results & there will be no nextPageToken sent when done is true.
	Done bool `json:"done"`

	// NextPageToken If present, set this value against your 'pageToken' query parameter in the next API call, which will retrieve the next set of results.
	NextPageToken *string `json:"nextPageToken,omitempty"`
}

PaginationInfo defines model for PaginationInfo.

type PatchApiKeyRequest

type PatchApiKeyRequest struct {
	ApiKey struct {
		// Active Whether the API key is active.
		Active *bool `json:"active,omitempty"`

		// Label A short name for the API key.
		Label *string `json:"label,omitempty"`

		// Scopes The scopes for the API key.
		Scopes *ApiKeyScopes `json:"scopes,omitempty"`
	} `json:"apiKey"`

	// UpdateMask Array of field paths specifying which fields to update. Allowed values include:
	// - active
	// - label
	// - scopes
	UpdateMask []string `json:"updateMask"`
}

PatchApiKeyRequest defines model for PatchApiKeyRequest.

type PatchJWTKeyRequest

type PatchJWTKeyRequest struct {
	// JwtKey Object containing the fields to update with their new values
	JwtKey PatchJWTKeyRequest_JwtKey `json:"jwtKey"`

	// UpdateMask List of field paths to update (currently supports 'active' and 'name')
	UpdateMask []PatchJWTKeyRequestUpdateMask `json:"updateMask"`
}

PatchJWTKeyRequest defines model for PatchJWTKeyRequest.

type PatchJWTKeyRequestUpdateMask

type PatchJWTKeyRequestUpdateMask string

PatchJWTKeyRequestUpdateMask defines model for PatchJWTKeyRequest.UpdateMask.

const (
	Active PatchJWTKeyRequestUpdateMask = "active"
	Label  PatchJWTKeyRequestUpdateMask = "label"
)

Defines values for PatchJWTKeyRequestUpdateMask.

func (PatchJWTKeyRequestUpdateMask) Valid

Valid indicates whether the value is a known member of the PatchJWTKeyRequestUpdateMask enum.

type PatchJWTKeyRequest_JwtKey

type PatchJWTKeyRequest_JwtKey struct {
	// Active New active status for the JWT key
	Active *bool `json:"active,omitempty"`

	// Label New label for the JWT key
	Label                *string                `json:"label,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

PatchJWTKeyRequest_JwtKey Object containing the fields to update with their new values

func (PatchJWTKeyRequest_JwtKey) Get

func (a PatchJWTKeyRequest_JwtKey) Get(fieldName string) (value interface{}, found bool)

Getter for additional properties for PatchJWTKeyRequest_JwtKey. Returns the specified element and whether it was found

func (PatchJWTKeyRequest_JwtKey) MarshalJSON

func (a PatchJWTKeyRequest_JwtKey) MarshalJSON() ([]byte, error)

Override default JSON handling for PatchJWTKeyRequest_JwtKey to handle AdditionalProperties

func (*PatchJWTKeyRequest_JwtKey) Set

func (a *PatchJWTKeyRequest_JwtKey) Set(fieldName string, value interface{})

Setter for additional properties for PatchJWTKeyRequest_JwtKey

func (*PatchJWTKeyRequest_JwtKey) UnmarshalJSON

func (a *PatchJWTKeyRequest_JwtKey) UnmarshalJSON(b []byte) error

Override default JSON handling for PatchJWTKeyRequest_JwtKey to handle AdditionalProperties

type PatchObjectConfigContentJSONBody

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

PatchObjectConfigContentJSONBody defines parameters for PatchObjectConfigContent.

func (PatchObjectConfigContentJSONBody) AsPatchObjectConfigContentJSONBody0

func (t PatchObjectConfigContentJSONBody) AsPatchObjectConfigContentJSONBody0() (PatchObjectConfigContentJSONBody0, error)

AsPatchObjectConfigContentJSONBody0 returns the union data inside the PatchObjectConfigContentJSONBody as a PatchObjectConfigContentJSONBody0

func (PatchObjectConfigContentJSONBody) AsPatchObjectConfigContentJSONBody1

func (t PatchObjectConfigContentJSONBody) AsPatchObjectConfigContentJSONBody1() (PatchObjectConfigContentJSONBody1, error)

AsPatchObjectConfigContentJSONBody1 returns the union data inside the PatchObjectConfigContentJSONBody as a PatchObjectConfigContentJSONBody1

func (*PatchObjectConfigContentJSONBody) FromPatchObjectConfigContentJSONBody0

func (t *PatchObjectConfigContentJSONBody) FromPatchObjectConfigContentJSONBody0(v PatchObjectConfigContentJSONBody0) error

FromPatchObjectConfigContentJSONBody0 overwrites any union data inside the PatchObjectConfigContentJSONBody as the provided PatchObjectConfigContentJSONBody0

func (*PatchObjectConfigContentJSONBody) FromPatchObjectConfigContentJSONBody1

func (t *PatchObjectConfigContentJSONBody) FromPatchObjectConfigContentJSONBody1(v PatchObjectConfigContentJSONBody1) error

FromPatchObjectConfigContentJSONBody1 overwrites any union data inside the PatchObjectConfigContentJSONBody as the provided PatchObjectConfigContentJSONBody1

func (PatchObjectConfigContentJSONBody) MarshalJSON

func (t PatchObjectConfigContentJSONBody) MarshalJSON() ([]byte, error)

func (*PatchObjectConfigContentJSONBody) MergePatchObjectConfigContentJSONBody0

func (t *PatchObjectConfigContentJSONBody) MergePatchObjectConfigContentJSONBody0(v PatchObjectConfigContentJSONBody0) error

MergePatchObjectConfigContentJSONBody0 performs a merge with any union data inside the PatchObjectConfigContentJSONBody, using the provided PatchObjectConfigContentJSONBody0

func (*PatchObjectConfigContentJSONBody) MergePatchObjectConfigContentJSONBody1

func (t *PatchObjectConfigContentJSONBody) MergePatchObjectConfigContentJSONBody1(v PatchObjectConfigContentJSONBody1) error

MergePatchObjectConfigContentJSONBody1 performs a merge with any union data inside the PatchObjectConfigContentJSONBody, using the provided PatchObjectConfigContentJSONBody1

func (*PatchObjectConfigContentJSONBody) UnmarshalJSON

func (t *PatchObjectConfigContentJSONBody) UnmarshalJSON(b []byte) error

type PatchObjectConfigContentJSONBody0

type PatchObjectConfigContentJSONBody0 struct {
	// Action The action type for the object config (read, subscribe, or write).
	Action PatchObjectConfigContentJSONBody0Action `json:"action"`

	// Changes Array of JSON Patch operations to apply.
	Changes []JSONPatchOperation `json:"changes"`

	// GroupRef The ID of the user group that has access to this installation.
	// Either groupRef or installationId must be provided.
	GroupRef string `json:"groupRef"`
}

PatchObjectConfigContentJSONBody0 defines parameters for PatchObjectConfigContent.

type PatchObjectConfigContentJSONBody0Action

type PatchObjectConfigContentJSONBody0Action string

PatchObjectConfigContentJSONBody0Action defines parameters for PatchObjectConfigContent.

const (
	PatchObjectConfigContentJSONBody0ActionRead      PatchObjectConfigContentJSONBody0Action = "read"
	PatchObjectConfigContentJSONBody0ActionSubscribe PatchObjectConfigContentJSONBody0Action = "subscribe"
	PatchObjectConfigContentJSONBody0ActionWrite     PatchObjectConfigContentJSONBody0Action = "write"
)

Defines values for PatchObjectConfigContentJSONBody0Action.

func (PatchObjectConfigContentJSONBody0Action) Valid

Valid indicates whether the value is a known member of the PatchObjectConfigContentJSONBody0Action enum.

type PatchObjectConfigContentJSONBody1

type PatchObjectConfigContentJSONBody1 struct {
	// Action The action type for the object config (read, subscribe, or write).
	Action PatchObjectConfigContentJSONBody1Action `json:"action"`

	// Changes Array of JSON Patch operations to apply.
	Changes []JSONPatchOperation `json:"changes"`

	// InstallationId The installation ID.
	// Either groupRef or installationId must be provided.
	InstallationId string `json:"installationId"`
}

PatchObjectConfigContentJSONBody1 defines parameters for PatchObjectConfigContent.

type PatchObjectConfigContentJSONBody1Action

type PatchObjectConfigContentJSONBody1Action string

PatchObjectConfigContentJSONBody1Action defines parameters for PatchObjectConfigContent.

const (
	PatchObjectConfigContentJSONBody1ActionRead      PatchObjectConfigContentJSONBody1Action = "read"
	PatchObjectConfigContentJSONBody1ActionSubscribe PatchObjectConfigContentJSONBody1Action = "subscribe"
	PatchObjectConfigContentJSONBody1ActionWrite     PatchObjectConfigContentJSONBody1Action = "write"
)

Defines values for PatchObjectConfigContentJSONBody1Action.

func (PatchObjectConfigContentJSONBody1Action) Valid

Valid indicates whether the value is a known member of the PatchObjectConfigContentJSONBody1Action enum.

type PatchObjectConfigContentJSONRequestBody

type PatchObjectConfigContentJSONRequestBody PatchObjectConfigContentJSONBody

PatchObjectConfigContentJSONRequestBody defines body for PatchObjectConfigContent for application/json ContentType.

type Problem

type Problem struct {
	// Detail A human-readable explanation specific to this occurrence of the problem
	Detail *string `json:"detail,omitempty"`

	// Href An absolute URI that, when dereferenced, provides human-readable documentation for the problem type (e.g. using HTML).
	Href *string `json:"href,omitempty"`

	// Instance An absolute URI that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
	Instance *string `json:"instance,omitempty"`

	// Status The HTTP status code generated by the origin server for this occurrence of the problem.
	Status *int32 `json:"status,omitempty"`

	// Title A short summary of the problem type. Written in English and readable for engineers (usually not suited for non technical stakeholders and not localized).
	Title *string `json:"title,omitempty"`

	// Type An absolute URI that identifies the problem type
	Type *string `json:"type,omitempty"`
}

Problem A Problem Details object (RFC 9457).

Additional properties specific to the problem type may be present.

type Project

type Project struct {
	// AppName The display name of the application, shown to end users during the connection flow.
	AppName string `json:"appName"`

	// CreateTime The time the project was created.
	CreateTime time.Time `json:"createTime"`

	// Entitlements Plan-based feature flags for the project. These are managed by Ampersand and cannot be set via the API.
	Entitlements *struct {
		// BrandingRemoval Controls whether Ampersand branding is removed from the embeddable UI components.
		BrandingRemoval struct {
			// Value True if Ampersand branding has been removed for this project.
			Value bool `json:"value"`
		} `json:"brandingRemoval,omitempty"`

		// LogRetentionDays The number of days that logs are retained for this project.
		LogRetentionDays struct {
			// Value The log retention period for this project, in days.
			Value int `json:"value"`
		} `json:"logRetentionDays,omitempty"`
	} `json:"entitlements,omitempty"`

	// Id The unique identifier for the project.
	Id string `json:"id"`

	// Name The unique name for the project.
	Name string `json:"name"`

	// OrgId The ID of the organization that this project belongs to.
	OrgId string `json:"orgId"`

	// UpdateTime The time the project was updated.
	UpdateTime *time.Time `json:"updateTime,omitempty"`
}

Project defines model for Project.

type ProviderApp

type ProviderApp struct {
	// ClientId The OAuth client ID for this app.
	ClientId string `json:"clientId"`

	// CreateTime The time the provider app was created.
	CreateTime time.Time `json:"createTime"`

	// ExternalRef The ID used by the provider to identify the app (optional).
	ExternalRef *string `json:"externalRef,omitempty"`

	// Id The provider app ID.
	Id string `json:"id"`

	// Metadata Provider-specific configuration that extends the standard OAuth flow.
	Metadata *ProviderAppMetadata `json:"metadata,omitempty"`

	// ProjectId The Ampersand project ID.
	ProjectId string `json:"projectId"`

	// Provider The SaaS provider that this app connects to.
	Provider string `json:"provider"`

	// Scopes The OAuth scopes for this app.
	Scopes *[]string `json:"scopes,omitempty"`

	// UpdateTime The time the provider app was updated.
	UpdateTime *time.Time `json:"updateTime,omitempty"`
}

ProviderApp defines model for ProviderApp.

type ProviderAppMetadata

type ProviderAppMetadata struct {
	// AuthQueryParams Additional query parameters to include in the OAuth authorization URL (e.g., optional_scope for HubSpot).
	AuthQueryParams *map[string][]string `json:"authQueryParams,omitempty"`

	// ProviderParams Provider-specific string values keyed by names (e.g., packageInstallURL for Salesforce, gcpProjectId and gcpPubSubTopicName for Gmail).
	ProviderParams *map[string]string `json:"providerParams,omitempty"`
}

ProviderAppMetadata Provider-specific configuration that extends the standard OAuth flow.

type ProviderAppMetadata2

type ProviderAppMetadata2 struct {
	// AuthQueryParams Descriptors for fields stored in ProviderApp.metadata.authQueryParams (e.g., optional_scope for HubSpot).
	AuthQueryParams []MetadataItemInput `json:"authQueryParams,omitempty"`

	// ProviderParams Descriptors for fields stored in ProviderApp.metadata.providerParams (e.g., packageInstallURL for Salesforce, gcpProjectId for Gmail).
	ProviderParams []MetadataItemInput `json:"providerParams,omitempty"`
}

ProviderAppMetadata2 Describes the provider-app-level fields that the Ampersand dashboard should collect from the builder when creating a ProviderApp for this provider. These descriptors tell the dashboard which form fields to render; the submitted values are stored in ProviderApp.metadata.

type ProviderInfo

type ProviderInfo struct {
	// ApiKeyOpts Configuration for API key. Must be provided if authType is apiKey.
	ApiKeyOpts *ApiKeyOpts `json:"apiKeyOpts,omitempty"`

	// AuthHealthCheck A URL to check the health of a provider's credentials. It's used to see if the credentials are valid and if the provider is reachable.
	AuthHealthCheck *AuthHealthCheck `json:"authHealthCheck,omitempty"`

	// AuthType The type of authentication required by the provider.
	AuthType AuthType `json:"authType" validate:"required"`

	// BaseURL The base URL for making API requests.
	BaseURL string `json:"baseURL" validate:"required"`

	// BasicOpts Configuration for Basic Auth. Optional.
	BasicOpts *BasicAuthOpts `json:"basicOpts,omitempty"`

	// CustomOpts Configuration for custom auth. Optional.
	CustomOpts    *CustomAuthOpts `json:"customOpts,omitempty"`
	DefaultModule string          `json:"defaultModule"`

	// DisplayName The display name of the provider, if omitted, defaults to provider name.
	DisplayName string  `json:"displayName,omitempty"`
	Labels      *Labels `json:"labels,omitempty"`
	Media       *Media  `json:"media,omitempty"`

	// Metadata Provider metadata that needs to be given by the user or fetched by the connector post authentication for the connector to work.
	Metadata *ProviderMetadata2 `json:"metadata,omitempty"`

	// Modules The registry of provider modules.
	Modules *Modules `json:"modules,omitempty"`
	Name    string   `json:"name"`

	// Oauth2Opts Configuration for OAuth2.0. Must be provided if authType is oauth2.
	Oauth2Opts *Oauth2Opts `json:"oauth2Opts,omitempty"`

	// PostAuthInfoNeeded If true, we require additional information after auth to start making requests.
	PostAuthInfoNeeded bool `json:"postAuthInfoNeeded,omitempty"`

	// ProviderAppMetadata Describes the provider-app-level fields that the Ampersand dashboard should collect from the builder when creating a ProviderApp for this provider. These descriptors tell the dashboard which form fields to render; the submitted values are stored in ProviderApp.metadata.
	ProviderAppMetadata *ProviderAppMetadata2 `json:"providerAppMetadata,omitempty"`

	// SubscribeRequirements Declares which auxiliary steps a provider requires to support subscriptions, beyond the per-object subscribe call itself.
	SubscribeRequirements *SubscribeRequirements `json:"subscribeRequirements,omitempty"`

	// Support The supported features for the provider.
	Support Support `json:"support" validate:"required"`
}

ProviderInfo defines model for ProviderInfo.

type ProviderMetadata

type ProviderMetadata map[string]ProviderMetadataInfo

ProviderMetadata defines model for ProviderMetadata.

type ProviderMetadata2

type ProviderMetadata2 struct {
	// Input Metadata provided as manual input
	Input []MetadataItemInput `json:"input,omitempty"`

	// PostAuthentication Metadata fetched by the connector post authentication
	PostAuthentication []MetadataItemPostAuthentication `json:"postAuthentication,omitempty"`
}

ProviderMetadata2 Provider metadata that needs to be given by the user or fetched by the connector post authentication for the connector to work.

type ProviderMetadataInfo

type ProviderMetadataInfo struct {
	// DisplayName The human-readable name for the field
	DisplayName *string `json:"displayName,omitempty"`

	// Source The source of the metadata field
	Source ProviderMetadataInfoSource `json:"source"`

	// Value The value of the metadata field
	Value string `json:"value"`
}

ProviderMetadataInfo defines model for ProviderMetadataInfo.

type ProviderMetadataInfoSource

type ProviderMetadataInfoSource string

ProviderMetadataInfoSource The source of the metadata field

const (
	Input    ProviderMetadataInfoSource = "input"
	Provider ProviderMetadataInfoSource = "provider"
	Token    ProviderMetadataInfoSource = "token"
)

Defines values for ProviderMetadataInfoSource.

func (ProviderMetadataInfoSource) Valid

func (e ProviderMetadataInfoSource) Valid() bool

Valid indicates whether the value is a known member of the ProviderMetadataInfoSource enum.

type QuotaOptimizationConfig

type QuotaOptimizationConfig struct {
	// Enabled Whether quota optimization is enabled for this object.
	Enabled bool `json:"enabled"`
}

QuotaOptimizationConfig Reduces API quota consumption for update events by filtering irrelevant change events at the source, so only updates that affect watched fields are delivered. Requires `updateEvent.requiredWatchFields` to be non-empty; it cannot be used with `updateEvent.watchFieldsAuto: all`. Currently supported for Salesforce.

type ReadConfig

type ReadConfig struct {
	Objects map[string]ReadConfigObject `json:"objects"`
}

ReadConfig defines model for ReadConfig.

type ReadConfigObject

type ReadConfigObject struct {
	Backfill *BackfillConfig `json:"backfill,omitempty"`

	// Destination The name of the destination that the result should be sent to.
	Destination string `json:"destination,omitempty"`

	// Disabled If this flag is set to true, scheduled reads associated with this object will be paused, and on-demand reads will not be allowed.
	Disabled *bool `json:"disabled,omitempty"`

	// DynamicMappingsInput An array containing all available dynamic field and value mappings for this installation, provided by the InstallIntegration component. This array represents the complete set of possible mappings, regardless of which ones are currently selected. The actual selected mappings are stored separately in the selectedFieldMappings property.
	DynamicMappingsInput *DynamicMappingsInput `json:"dynamicMappingsInput,omitempty"`

	// FieldFilters Filters to apply when reading records during incremental reads and backfill. Multiple conditions are joined by AND. Each field can only have one condition.
	FieldFilters []ReadFilter `json:"fieldFilters,omitempty"`

	// ObjectName The name of the object to read from.
	ObjectName string `json:"objectName" validate:"required"`

	// Schedule The schedule for reading the object, in cron syntax.
	Schedule string `json:"schedule,omitempty"`

	// SelectedFieldMappings This is a map of mapToNames to field names. (A mapTo name is the name the builder wants to map a field to when it lands in their destination.)
	SelectedFieldMappings map[string]string `json:"selectedFieldMappings"`

	// SelectedFields This is a map of field names to booleans indicating whether they should be read. If a field is already included in `selectedFieldMappings`, it does not need to be included here.
	SelectedFields map[string]bool `json:"selectedFields"`

	// SelectedFieldsAuto If selectedFieldsAuto is set to all, all fields will be read.
	SelectedFieldsAuto *SelectedFieldsAutoConfig `json:"selectedFieldsAuto,omitempty"`

	// SelectedValueMappings This is a map of field names to their value mappings.
	SelectedValueMappings map[string]SelectedValueMappings `json:"selectedValueMappings,omitempty"`
}

ReadConfigObject defines model for ReadConfigObject.

type ReadFilter

type ReadFilter struct {
	// FieldName The name of the field to filter on.
	FieldName string `json:"fieldName"`

	// Operator The comparison operator.
	Operator ReadFilterOperator `json:"operator"`

	// Value The value to filter on. Allowed types are string, boolean, and number.
	Value *ReadFilterValue `json:"value,omitempty"`
}

ReadFilter defines model for ReadFilter.

type ReadFilterOperator

type ReadFilterOperator string

ReadFilterOperator The comparison operator.

const (
	Eq ReadFilterOperator = "eq"
)

Defines values for ReadFilterOperator.

func (ReadFilterOperator) Valid

func (e ReadFilterOperator) Valid() bool

Valid indicates whether the value is a known member of the ReadFilterOperator enum.

type ReadFilterValue

type ReadFilterValue = interface{}

ReadFilterValue The value to filter on. Allowed types are string, boolean, and number.

type RedirectResponse

type RedirectResponse struct {
	// SessionId The flow identifier to pass back to /custom-auth/connect once the provider redirects to the callback.
	SessionId string `json:"sessionId"`

	// Url The URL the client should open to continue the flow.
	Url string `json:"url"`
}

RedirectResponse Instructs the client to open a URL (e.g. in a popup) to continue a custom auth flow, then resume by calling /custom-auth/connect with the sessionId.

type Revision

type Revision struct {
	Content Integration2 `json:"content"`

	// CreateTime The time the revision was created.
	CreateTime time.Time `json:"createTime"`

	// Id The revision ID.
	Id string `json:"id"`

	// SpecVersion The spec version string.
	SpecVersion string `json:"specVersion"`
}

Revision defines model for Revision.

type SearchOperators

type SearchOperators struct {
	Equals bool `json:"equals"`
}

SearchOperators defines model for SearchOperators.

type SearchSupport

type SearchSupport struct {
	Operators SearchOperators `json:"operators"`
}

SearchSupport defines model for SearchSupport.

type SelectedFieldsAutoConfig

type SelectedFieldsAutoConfig string

SelectedFieldsAutoConfig If selectedFieldsAuto is set to all, all fields will be read.

const (
	SelectedFieldsAll SelectedFieldsAutoConfig = "all"
)

Defines values for SelectedFieldsAutoConfig.

func (SelectedFieldsAutoConfig) Valid

func (e SelectedFieldsAutoConfig) Valid() bool

Valid indicates whether the value is a known member of the SelectedFieldsAutoConfig enum.

type SelectedValueMappings

type SelectedValueMappings map[string]string

SelectedValueMappings This is a map of values to their mappings. The key is the value delivered to the webhook, the value is the value coming from the provider API.

type SignedUrl

type SignedUrl struct {
	// Bucket The bucket (will match the bucket part of the url).
	Bucket string `json:"bucket"`

	// Path The path (will match the path part of the url).
	Path string `json:"path"`

	// Url The signed URL to upload the zip file to.
	Url string `json:"url"`
}

SignedUrl defines model for SignedUrl.

type StringFieldOptions

type StringFieldOptions struct {
	// DefaultValue Default value for the field
	DefaultValue *string `json:"defaultValue,omitempty"`

	// Length Maximum length of the string field
	Length *int `json:"length,omitempty"`

	// Pattern Regex pattern that the string field value must match
	Pattern *string `json:"pattern,omitempty"`

	// Values List of allowed values for enum fields
	Values *[]string `json:"values,omitempty"`

	// ValuesRestricted Indicates if the field value must be limited to what's in Values
	ValuesRestricted *bool `json:"valuesRestricted,omitempty"`
}

StringFieldOptions Additional options for string fields

type SubscribeConfig

type SubscribeConfig struct {
	Objects map[string]SubscribeConfigObject `json:"objects"`
}

SubscribeConfig defines model for SubscribeConfig.

type SubscribeConfigObject

type SubscribeConfigObject struct {
	CreateEvent *ConfigCreateEvent `json:"createEvent,omitempty"`
	DeleteEvent *ConfigDeleteEvent `json:"deleteEvent,omitempty"`

	// Destination The name of the destination that the result should be sent to.
	Destination string `json:"destination"`

	// InheritFieldsAndMappings Whether to inherit fields and mappings from the read config.
	InheritFieldsAndMappings bool `json:"inheritFieldsAndMappings"`

	// ObjectName The name of the object to subscribe to.
	ObjectName  string             `json:"objectName" validate:"required"`
	OtherEvents *ConfigOtherEvents `json:"otherEvents,omitempty"`

	// ProviderOptions Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.
	ProviderOptions *SubscribeProviderOptions `json:"providerOptions,omitempty"`
	UpdateEvent     *ConfigUpdateEvent        `json:"updateEvent,omitempty"`
}

SubscribeConfigObject defines model for SubscribeConfigObject.

type SubscribeProviderOptions

type SubscribeProviderOptions struct {
	// QuotaOptimization Reduces API quota consumption for update events by filtering irrelevant change events at the source, so only updates that affect watched fields are delivered. Requires `updateEvent.requiredWatchFields` to be non-empty; it cannot be used with `updateEvent.watchFieldsAuto: all`. Currently supported for Salesforce.
	QuotaOptimization *QuotaOptimizationConfig `json:"quotaOptimization,omitempty"`
}

SubscribeProviderOptions Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.

type SubscribeRequirements

type SubscribeRequirements struct {
	// Maintenance Whether the subscription requires periodic maintenance. Some providers expire subscriptions/watches after a fixed TTL, so the subscription must be renewed on a schedule to remain active.
	Maintenance *bool `json:"maintenance,omitempty"`

	// PostProcess Whether subscribing requires a third-party setup step that the connector instance itself cannot perform. Examples: Salesforce requires AWS EventBridge configuration; Gmail requires a Google Pub/Sub topic to be configured. Any configuration that must happen outside the connector falls into post-process.
	PostProcess *bool `json:"postProcess,omitempty"`

	// Registration Whether the provider requires a one-time registration step that is shared across all subscribed objects. The subscribe method is object-scoped, so if a separate API call is needed beyond per-object configuration (e.g., registering a single webhook/endpoint that all object subscriptions hang off of), registration is required.
	Registration *bool `json:"registration,omitempty"`

	// SubscribeByAPI Whether the provider supports programmatic subscription via API. If false, provider may still support webhooks via manual configuration in UI.
	SubscribeByAPI *bool `json:"subscribeByAPI,omitempty"`
}

SubscribeRequirements Declares which auxiliary steps a provider requires to support subscriptions, beyond the per-object subscribe call itself.

type SubscribeSupport

type SubscribeSupport struct {
	Create      *bool `json:"create,omitempty"`
	Delete      *bool `json:"delete,omitempty"`
	PassThrough *bool `json:"passThrough,omitempty"`
	Update      *bool `json:"update,omitempty"`
}

SubscribeSupport defines model for SubscribeSupport.

type Support

type Support struct {
	BatchWrite       *BatchWriteSupport `json:"batchWrite,omitempty"`
	BulkWrite        BulkWriteSupport   `json:"bulkWrite" validate:"required"`
	Delete           bool               `json:"delete"`
	Proxy            bool               `json:"proxy"`
	Read             bool               `json:"read"`
	Search           SearchSupport      `json:"search"`
	Subscribe        bool               `json:"subscribe"`
	SubscribeSupport *SubscribeSupport  `json:"subscribeSupport,omitempty"`
	Write            bool               `json:"write"`
}

Support The supported features for the provider.

type TokenMetadataFields

type TokenMetadataFields struct {
	ConsumerRefField string `json:"consumerRefField,omitempty"`

	// OtherFields Additional fields to extract and transform from the token response
	OtherFields       *TokenMetadataFieldsOtherFields `json:"otherFields,omitempty"`
	ScopesField       string                          `json:"scopesField,omitempty"`
	WorkspaceRefField string                          `json:"workspaceRefField,omitempty"`
}

TokenMetadataFields Fields to be used to extract token metadata from the token response.

type TokenMetadataFieldsOtherFields

type TokenMetadataFieldsOtherFields = []struct {
	// Capture A regex expression to capture the value that we need from the path. There must be only one capture group named 'result' in the expression. If not provided, will cause an error.
	Capture string `json:"capture,omitempty"`

	// DisplayName The human-readable name of the field
	DisplayName string `json:"displayName"`

	// Name The internal name of the field
	Name string `json:"name"`

	// Path The path to the field in the token response (accepts dot notation for nested fields)
	Path string `json:"path"`
}

TokenMetadataFieldsOtherFields Additional fields to extract and transform from the token response

type Topic

type Topic struct {
	// CreateTime The time when the topic was created.
	CreateTime time.Time `json:"createTime"`

	// Id The topic ID.
	Id string `json:"id"`

	// Name The name of the topic. Must contain only letters, numbers, and dashes.
	Name string `json:"name"`

	// ProjectId The Ampersand project ID.
	ProjectId string `json:"projectId"`

	// UpdateTime The time when the topic was last updated.
	UpdateTime *time.Time `json:"updateTime,omitempty"`
}

Topic defines model for Topic.

type TopicDestinationRoute

type TopicDestinationRoute struct {
	// CreateTime The time when the topic destination route was created.
	CreateTime time.Time `json:"createTime"`

	// DestinationId The ID of the destination.
	DestinationId string `json:"destinationId"`

	// Id The topic destination route ID.
	Id string `json:"id"`

	// ProjectId The Ampersand project ID.
	ProjectId string `json:"projectId"`

	// TopicId The ID of the topic.
	TopicId string `json:"topicId"`
}

TopicDestinationRoute defines model for TopicDestinationRoute.

type UpdateApiKeyJSONRequestBody

type UpdateApiKeyJSONRequestBody = PatchApiKeyRequest

UpdateApiKeyJSONRequestBody defines body for UpdateApiKey for application/json ContentType.

type UpdateConnectionJSONRequestBody

type UpdateConnectionJSONRequestBody = UpdateConnectionRequest

UpdateConnectionJSONRequestBody defines body for UpdateConnection for application/json ContentType.

type UpdateConnectionRequest

type UpdateConnectionRequest struct {
	Connection ConnectionRequest `json:"connection"`

	// UpdateMask Fields to update. Each entry must have a corresponding value in `connection`. Credential fields (`apiKey`, `basicAuth`, `oauth2ClientCredentials`, `oauth2PasswordCredentials`) must match the connection's existing auth scheme.
	UpdateMask []UpdateConnectionRequestUpdateMask `json:"updateMask"`
}

UpdateConnectionRequest Specify which fields to update in `updateMask` and provide corresponding values in `connection`. Fields in `connection` not listed in `updateMask` are ignored.

type UpdateConnectionRequestUpdateMask

type UpdateConnectionRequestUpdateMask string

UpdateConnectionRequestUpdateMask defines model for UpdateConnectionRequest.UpdateMask.

const (
	UpdateConnectionRequestUpdateMaskApiKey                    UpdateConnectionRequestUpdateMask = "apiKey"
	UpdateConnectionRequestUpdateMaskBasicAuth                 UpdateConnectionRequestUpdateMask = "basicAuth"
	UpdateConnectionRequestUpdateMaskOauth2ClientCredentials   UpdateConnectionRequestUpdateMask = "oauth2ClientCredentials"
	UpdateConnectionRequestUpdateMaskOauth2PasswordCredentials UpdateConnectionRequestUpdateMask = "oauth2PasswordCredentials"
	UpdateConnectionRequestUpdateMaskProviderMetadata          UpdateConnectionRequestUpdateMask = "providerMetadata"
	UpdateConnectionRequestUpdateMaskProviderWorkspaceRef      UpdateConnectionRequestUpdateMask = "providerWorkspaceRef"
)

Defines values for UpdateConnectionRequestUpdateMask.

func (UpdateConnectionRequestUpdateMask) Valid

Valid indicates whether the value is a known member of the UpdateConnectionRequestUpdateMask enum.

type UpdateDestinationJSONBody

type UpdateDestinationJSONBody struct {
	Destination struct {
		Metadata *struct {
			// Account The storage account name for the `azureblob` destination.
			Account *string `json:"account,omitempty"`

			// AccountIdentifier The Snowflake account identifier for the `snowflake` destination.
			AccountIdentifier *string `json:"accountIdentifier,omitempty"`

			// BatchSize For warehouse destinations, rows to buffer before flushing a batch (default 1000).
			BatchSize *int `json:"batchSize,omitempty"`

			// Bucket The name of the S3 bucket to write objects to.
			Bucket *string `json:"bucket,omitempty"`

			// ClusterIdentifier The Redshift provisioned cluster identifier for the `redshift` destination.
			ClusterIdentifier *string `json:"clusterIdentifier,omitempty"`

			// Container The blob container name for the `azureblob` destination.
			Container *string `json:"container,omitempty"`

			// Database The database name for the `clickhouse` destination.
			Database *string `json:"database,omitempty"`

			// DatasetId The BigQuery dataset ID for the `bigquery` destination.
			DatasetId *string `json:"datasetId,omitempty"`

			// DbName The database name (`snowflake`, `redshift`).
			DbName *string `json:"dbName,omitempty"`

			// DbUser The database user for the `redshift` destination.
			DbUser *string `json:"dbUser,omitempty"`

			// EndpointUrl The endpoint URL for the `kinesis` stream, or the optional custom endpoint URL for the `sqs` destination.
			EndpointUrl *string `json:"endpointUrl,omitempty"`

			// Exchange The exchange to publish to for the `rabbitmq` destination. Required for `rabbitmq`.
			Exchange *string `json:"exchange,omitempty"`

			// Headers Additional headers to add when Ampersand sends a webhook message
			Headers *WebhookHeaders `json:"headers,omitempty"`

			// KeyTemplate The template for the S3 object key to use when writing objects (a JMESPath template). If omitted, the key defaults to the message timestamp followed by the message ID.
			KeyTemplate *string `json:"keyTemplate,omitempty"`

			// MaxWaitSecs For warehouse destinations, max seconds before flushing a batch (default 30).
			MaxWaitSecs *int `json:"maxWaitSecs,omitempty"`

			// Name The queue or topic name for the `azureservicebus` destination. Required for `azureservicebus`.
			Name *string `json:"name,omitempty"`

			// PartitionKeyTemplate The template for the partition key (a JMESPath template). Used by `kinesis`.
			PartitionKeyTemplate *string `json:"partitionKeyTemplate,omitempty"`

			// ProjectId The Google Cloud project ID (`bigquery`, `pubsub`). Required for `pubsub`.
			ProjectId *string `json:"projectId,omitempty"`

			// QueueUrl The SQS queue URL for the `sqs` destination. Required for `sqs`.
			QueueUrl *string `json:"queueUrl,omitempty"`

			// Region The AWS region where the Kinesis or S3 destination is hosted.
			Region *string `json:"region,omitempty"`

			// SchemaName The schema name (`snowflake`, `redshift`).
			SchemaName *string `json:"schemaName,omitempty"`

			// ServerUrl The AMQP server URL for the `rabbitmq` destination. Required for `rabbitmq`.
			ServerUrl *string `json:"serverUrl,omitempty"`

			// StorageClass The S3 storage class for written objects. Defaults to STANDARD. Common values include STANDARD, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, GLACIER_IR, and DEEP_ARCHIVE.
			StorageClass *string `json:"storageClass,omitempty"`

			// StreamName The name of the Kinesis stream to send events to.
			StreamName *string `json:"streamName,omitempty"`

			// TableId The BigQuery table ID for the `bigquery` destination.
			TableId *string `json:"tableId,omitempty"`

			// TableName The destination table name (`clickhouse`, `snowflake`, `redshift`).
			TableName *string `json:"tableName,omitempty"`

			// Tls Whether to connect over TLS. Optional for the `rabbitmq` destination.
			Tls *bool `json:"tls,omitempty"`

			// TopicId The Pub/Sub topic ID for the `pubsub` destination. Required for `pubsub`.
			TopicId *string `json:"topicId,omitempty"`

			// Url Webhook URL
			Url *string `json:"url,omitempty"`

			// UserId The user ID for the `snowflake` destination.
			UserId *string `json:"userId,omitempty"`

			// Username The username for the `clickhouse` destination.
			Username *string `json:"username,omitempty"`

			// WorkgroupName The Redshift Serverless workgroup name for the `redshift` destination.
			WorkgroupName *string `json:"workgroupName,omitempty"`
		} `json:"metadata,omitempty"`

		// Name User-friendly name for the destination
		Name *string `json:"name,omitempty"`

		// Secrets Secrets for the destination.
		Secrets *struct {
			// AccessKey The account access key for the `azureblob` destination.
			AccessKey *string `json:"accessKey,omitempty"`

			// AccessKeyId The AWS access key ID for the `redshift` destination.
			AccessKeyId *string `json:"accessKeyId,omitempty"`

			// AwsKeyId The AWS access key ID for the `kinesis`, `s3`, and `sqs` destinations. Required for `sqs`.
			AwsKeyId *string `json:"awsKeyId,omitempty"`

			// AwsSecretKey The AWS secret access key for the `kinesis`, `s3`, and `sqs` destinations. Required for `sqs`.
			AwsSecretKey *string `json:"awsSecretKey,omitempty"`

			// AwsSessionToken The optional AWS session token for the `kinesis`, `s3`, and `sqs` destinations.
			AwsSessionToken *string `json:"awsSessionToken,omitempty"`

			// ConnectionString The connection string for the `azureservicebus` destination. Required for `azureservicebus`.
			ConnectionString *string `json:"connectionString,omitempty"`

			// Credentials The service-account credentials JSON for the `bigquery`, `gcs`, and `pubsub` destinations. Required for `pubsub`.
			Credentials *string `json:"credentials,omitempty"`

			// Password The password for the `clickhouse` and `rabbitmq` destinations. Required for `rabbitmq`.
			Password *string `json:"password,omitempty"`

			// PrivateKey The PEM-encoded RSA private key for the `snowflake` destination.
			PrivateKey *string `json:"privateKey,omitempty"`

			// SecretAccessKey The AWS secret access key for the `redshift` destination.
			SecretAccessKey *string `json:"secretAccessKey,omitempty"`

			// Username The username for the `rabbitmq` destination. Required for `rabbitmq`.
			Username *string `json:"username,omitempty"`
		} `json:"secrets,omitempty"`
	} `json:"destination"`

	// UpdateMask Array of field paths specifying which fields to update. Allowed values include:
	// - name
	// - metadata.url
	// - metadata.headers
	// - metadata.region
	// - metadata.streamName
	// - metadata.endpointUrl
	// - metadata.partitionKeyTemplate
	// - metadata.bucket
	// - metadata.keyTemplate
	// - metadata.storageClass
	// - metadata.username
	// - metadata.tableName
	// - metadata.database
	// - metadata.accountIdentifier
	// - metadata.userId
	// - metadata.dbName
	// - metadata.schemaName
	// - metadata.projectId
	// - metadata.datasetId
	// - metadata.tableId
	// - metadata.workgroupName
	// - metadata.clusterIdentifier
	// - metadata.dbUser
	// - metadata.account
	// - metadata.container
	// - metadata.queueUrl
	// - metadata.topicId
	// - metadata.serverUrl
	// - metadata.exchange
	// - metadata.tls
	// - metadata.name
	// - metadata.batchSize
	// - metadata.maxWaitSecs
	// - secrets.awsKeyId
	// - secrets.awsSecretKey
	// - secrets.awsSessionToken
	// - secrets.password
	// - secrets.privateKey
	// - secrets.credentials
	// - secrets.accessKeyId
	// - secrets.secretAccessKey
	// - secrets.accessKey
	// - secrets.username
	// - secrets.connectionString
	UpdateMask []string `json:"updateMask"`
}

UpdateDestinationJSONBody defines parameters for UpdateDestination.

type UpdateDestinationJSONRequestBody

type UpdateDestinationJSONRequestBody UpdateDestinationJSONBody

UpdateDestinationJSONRequestBody defines body for UpdateDestination for application/json ContentType.

type UpdateEvent

type UpdateEvent struct {
	// Enabled If always, the integration will subscribe to update events by default.
	Enabled             *UpdateEventEnabled `json:"enabled,omitempty"`
	RequiredWatchFields *[]string           `json:"requiredWatchFields,omitempty"`

	// WatchFieldsAuto If `all`, the integration will watch all fields for updates. If `selected`, the integration will watch only the fields that are selected by the user. If `inheritFieldsAndMapping` is true for Subscribe action, the integration will watch the selected fields from read action that are selected by the user.
	WatchFieldsAuto *UpdateEventWatchFieldsAuto `json:"watchFieldsAuto,omitempty"`
}

UpdateEvent defines model for UpdateEvent.

type UpdateEventEnabled

type UpdateEventEnabled string

UpdateEventEnabled If always, the integration will subscribe to update events by default.

const (
	UpdateEventEnabledAlways UpdateEventEnabled = "always"
)

Defines values for UpdateEventEnabled.

func (UpdateEventEnabled) Valid

func (e UpdateEventEnabled) Valid() bool

Valid indicates whether the value is a known member of the UpdateEventEnabled enum.

type UpdateEventWatchFieldsAuto

type UpdateEventWatchFieldsAuto string

UpdateEventWatchFieldsAuto If `all`, the integration will watch all fields for updates. If `selected`, the integration will watch only the fields that are selected by the user. If `inheritFieldsAndMapping` is true for Subscribe action, the integration will watch the selected fields from read action that are selected by the user.

const (
	All      UpdateEventWatchFieldsAuto = "all"
	Selected UpdateEventWatchFieldsAuto = "selected"
)

Defines values for UpdateEventWatchFieldsAuto.

func (UpdateEventWatchFieldsAuto) Valid

func (e UpdateEventWatchFieldsAuto) Valid() bool

Valid indicates whether the value is a known member of the UpdateEventWatchFieldsAuto enum.

type UpdateInstallationConfigContent

type UpdateInstallationConfigContent struct {
	// Provider The SaaS API that we are integrating with.
	Provider  *string              `json:"provider,omitempty"`
	Proxy     *BaseProxyConfig     `json:"proxy,omitempty"`
	Read      *BaseReadConfig      `json:"read,omitempty"`
	Subscribe *BaseSubscribeConfig `json:"subscribe,omitempty"`
	Write     *BaseWriteConfig     `json:"write,omitempty"`
}

UpdateInstallationConfigContent defines model for UpdateInstallationConfigContent.

type UpdateInstallationJSONBody

type UpdateInstallationJSONBody struct {
	// Installation The installation fields to update. Only fields whose paths are listed in `updateMask` will be
	// applied; all other fields in this object are ignored.
	Installation struct {
		// Config The config of the installation.
		Config *struct {
			Content *UpdateInstallationConfigContent `json:"content,omitempty"`

			// CreatedBy The person who created the config, in the format of "consumer:{consumer-id}" or "builder:{builder-id}".
			CreatedBy *string `json:"createdBy,omitempty"`

			// RevisionId Deprecated: This field will be automatically set to the latest revision ID.
			// Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set
			RevisionId *string `json:"revisionId,omitempty"`
		} `json:"config,omitempty"`

		// ConnectionId The ID of the SaaS connection tied to this installation.
		ConnectionId *string `json:"connectionId,omitempty"`
	} `json:"installation"`

	// UpdateMask Array of field paths specifying which fields to update. Each path must have a corresponding value in the `installation` object. A field included in `installation` but not listed here will be ignored. Allowed values:
	// - `connectionId` - switch the SaaS connection tied to this installation.
	// - `config.createdBy` - change the attribution for who created this config.
	// - `config.content.read.objects.<objectName>` - replace the read config for a single object (e.g. `config.content.read.objects.contacts`).
	// - `config.content.write.objects.<objectName>` - replace the write config for a single object.
	// - `config.content.write.objects` - replace the entire write objects map.
	// - `config.content.subscribe.objects.<objectName>` - replace the subscribe config for a single object.
	// - `config.content.subscribe.objects` - replace the entire subscribe objects map.
	// - `config.content.proxy.enabled` - enable or disable the proxy.
	//
	// Replace `<objectName>` with the provider object name (e.g. `contacts`, `leads`, `accounts`).
	UpdateMask []string `json:"updateMask"`
}

UpdateInstallationJSONBody defines parameters for UpdateInstallation.

type UpdateInstallationJSONRequestBody

type UpdateInstallationJSONRequestBody UpdateInstallationJSONBody

UpdateInstallationJSONRequestBody defines body for UpdateInstallation for application/json ContentType.

type UpdateInstallationParams

type UpdateInstallationParams struct {
	// SkipSampling When `true`, skips the sample read that validates the installation's read configuration against the provider before saving. Defaults to `false`.
	SkipSampling *bool `form:"skipSampling,omitempty" json:"skipSampling,omitempty"`
}

UpdateInstallationParams defines parameters for UpdateInstallation.

type UpdateJWTKeyJSONRequestBody

type UpdateJWTKeyJSONRequestBody = PatchJWTKeyRequest

UpdateJWTKeyJSONRequestBody defines body for UpdateJWTKey for application/json ContentType.

type UpdateMask

type UpdateMask = []string

UpdateMask Array of field paths specifying which fields to update. Uses dot notation for nested fields (e.g., "config.revision", "metadata.tags").

**Field Path Rules:** - Use dot notation for nested objects: `parent.child.field` - Escape special characters: `field\.with\.dots`, `field\:with\:colons` - Array elements not directly addressable - Object names can be specified directly (e.g., "config.content.read.objects.contacts") - The * operator in paths like "config.content.read.objects.*" allows you to specify any object name

  • Example: "config.content.read.objects.*" pattern allows "config.content.read.objects.contacts", "config.content.read.objects.leads", etc.

type UpdateOrgJSONBody

type UpdateOrgJSONBody struct {
	Org struct {
		// Label The organization label.
		Label *string `json:"label,omitempty"`
	} `json:"org"`

	// UpdateMask Array of field paths specifying which fields to update. Allowed values include:
	// - label
	UpdateMask []string `json:"updateMask"`
}

UpdateOrgJSONBody defines parameters for UpdateOrg.

type UpdateOrgJSONRequestBody

type UpdateOrgJSONRequestBody UpdateOrgJSONBody

UpdateOrgJSONRequestBody defines body for UpdateOrg for application/json ContentType.

type UpdateProjectJSONBody

type UpdateProjectJSONBody struct {
	// Project The project fields to update. Only fields whose paths are listed in `updateMask`
	// will be applied; all other fields in this object are ignored.
	Project struct {
		// AppName The display name of the application, shown to end users during the connection flow.
		AppName *string `json:"appName,omitempty"`

		// Name The unique name for the project. Must be unique within the organization.
		Name *string `json:"name,omitempty"`
	} `json:"project"`

	// UpdateMask Array of field paths specifying which fields to update. Each path must have a
	// corresponding value in the `project` object. A field included in `project` but
	// not listed here will be ignored. Allowed values:
	// - `appName` - the display name of the application, shown to end users during the connection flow.
	// - `name` - the unique project identifier (must be unique within your organization).
	UpdateMask []string `json:"updateMask"`
}

UpdateProjectJSONBody defines parameters for UpdateProject.

type UpdateProjectJSONRequestBody

type UpdateProjectJSONRequestBody UpdateProjectJSONBody

UpdateProjectJSONRequestBody defines body for UpdateProject for application/json ContentType.

type UpdateProviderAppJSONBody

type UpdateProviderAppJSONBody struct {
	// ProviderApp The provider app fields to update. (Only include the fields you'd like to update.)
	ProviderApp struct {
		// ClientId The OAuth client ID for this app.
		ClientId *string `json:"clientId,omitempty"`

		// ClientSecret The OAuth client secret for this app.
		ClientSecret *string `json:"clientSecret,omitempty"`

		// ExternalRef The ID used by the provider to identify the app (optional).
		ExternalRef *string `json:"externalRef,omitempty"`

		// Metadata Provider-specific configuration that extends the standard OAuth flow.
		Metadata *ProviderAppMetadata `json:"metadata,omitempty"`

		// Provider The SaaS provider that this app connects to.
		Provider *string `json:"provider,omitempty"`

		// Scopes The OAuth scopes for this app.
		Scopes *[]string `json:"scopes,omitempty"`
	} `json:"providerApp"`

	// UpdateMask Array of field paths specifying which fields to update. Allowed values include:
	// - externalRef
	// - clientId
	// - clientSecret
	// - provider
	// - scopes
	// - metadata
	UpdateMask []string `json:"updateMask"`
}

UpdateProviderAppJSONBody defines parameters for UpdateProviderApp.

type UpdateProviderAppJSONRequestBody

type UpdateProviderAppJSONRequestBody UpdateProviderAppJSONBody

UpdateProviderAppJSONRequestBody defines body for UpdateProviderApp for application/json ContentType.

type UpdateTopicJSONBody

type UpdateTopicJSONBody struct {
	// Name A human-readable name for the topic.
	Name string `json:"name"`
}

UpdateTopicJSONBody defines parameters for UpdateTopic.

type UpdateTopicJSONRequestBody

type UpdateTopicJSONRequestBody UpdateTopicJSONBody

UpdateTopicJSONRequestBody defines body for UpdateTopic for application/json ContentType.

type UpsertMetadataForConnectionJSONRequestBody

type UpsertMetadataForConnectionJSONRequestBody = UpsertMetadataRequest

UpsertMetadataForConnectionJSONRequestBody defines body for UpsertMetadataForConnection for application/json ContentType.

type UpsertMetadataForInstallationJSONRequestBody

type UpsertMetadataForInstallationJSONRequestBody = UpsertMetadataRequest

UpsertMetadataForInstallationJSONRequestBody defines body for UpsertMetadataForInstallation for application/json ContentType.

type UpsertMetadataRequest

type UpsertMetadataRequest struct {
	// Fields Maps object names to field definitions
	Fields map[string][]FieldDefinition `json:"fields"`

	// GroupRef The ID that your app uses to identify the group of users for this request.
	GroupRef string `json:"groupRef"`
}

UpsertMetadataRequest Request payload for upserting metadata (fields only)

type UpsertMetadataResponse

type UpsertMetadataResponse struct {
	// Fields Maps object name -> field name -> upsert result
	Fields map[string]map[string]FieldUpsertResult `json:"fields"`

	// Success Indicates if the upsert operation was successful
	Success bool `json:"success"`
}

UpsertMetadataResponse Response containing results for all created/updated fields

type ValueDefault

type ValueDefault = any

ValueDefault defines model for ValueDefault.

type ValueDefaultBoolean

type ValueDefaultBoolean struct {
	// ApplyOnUpdate Whether the default value should be applied when updating a record.
	// If set to `always`, the default value will be applied when updating a record.
	// If set to `never`, the default value will not be applied when updating a record,
	// only when creating a record.
	// If unspecified, then `always` is assumed.
	ApplyOnUpdate *ValueDefaultBooleanApplyOnUpdate `json:"applyOnUpdate,omitempty"`

	// Value The value to be used as a default.
	Value bool `json:"value"`
}

ValueDefaultBoolean defines model for ValueDefaultBoolean.

type ValueDefaultBooleanApplyOnUpdate

type ValueDefaultBooleanApplyOnUpdate string

ValueDefaultBooleanApplyOnUpdate Whether the default value should be applied when updating a record. If set to `always`, the default value will be applied when updating a record. If set to `never`, the default value will not be applied when updating a record, only when creating a record. If unspecified, then `always` is assumed.

const (
	ValueDefaultBooleanApplyOnUpdateAlways ValueDefaultBooleanApplyOnUpdate = "always"
	ValueDefaultBooleanApplyOnUpdateNever  ValueDefaultBooleanApplyOnUpdate = "never"
)

Defines values for ValueDefaultBooleanApplyOnUpdate.

func (ValueDefaultBooleanApplyOnUpdate) Valid

Valid indicates whether the value is a known member of the ValueDefaultBooleanApplyOnUpdate enum.

type ValueDefaultInteger

type ValueDefaultInteger struct {
	// ApplyOnUpdate Whether the default value should be applied when updating a record.
	// If set to `always`, the default value will be applied when updating a record.
	// If set to `never`, the default value will not be applied when updating a record,
	// only when creating a record.
	// If unspecified, then `always` is assumed.
	ApplyOnUpdate *ValueDefaultIntegerApplyOnUpdate `json:"applyOnUpdate,omitempty"`

	// Value The value to be used as a default.
	Value int `json:"value"`
}

ValueDefaultInteger defines model for ValueDefaultInteger.

type ValueDefaultIntegerApplyOnUpdate

type ValueDefaultIntegerApplyOnUpdate string

ValueDefaultIntegerApplyOnUpdate Whether the default value should be applied when updating a record. If set to `always`, the default value will be applied when updating a record. If set to `never`, the default value will not be applied when updating a record, only when creating a record. If unspecified, then `always` is assumed.

const (
	ValueDefaultIntegerApplyOnUpdateAlways ValueDefaultIntegerApplyOnUpdate = "always"
	ValueDefaultIntegerApplyOnUpdateNever  ValueDefaultIntegerApplyOnUpdate = "never"
)

Defines values for ValueDefaultIntegerApplyOnUpdate.

func (ValueDefaultIntegerApplyOnUpdate) Valid

Valid indicates whether the value is a known member of the ValueDefaultIntegerApplyOnUpdate enum.

type ValueDefaultString

type ValueDefaultString struct {
	// ApplyOnUpdate Whether the default value should be applied when updating a record.
	// If set to `always`, the default value will be applied when updating a record.
	// If set to `never`, the default value will not be applied when updating a record,
	// only when creating a record.
	// If unspecified, then `always` is assumed.
	ApplyOnUpdate *ValueDefaultStringApplyOnUpdate `json:"applyOnUpdate,omitempty"`

	// Value The value to be used as a default.
	Value string `json:"value"`
}

ValueDefaultString defines model for ValueDefaultString.

type ValueDefaultStringApplyOnUpdate

type ValueDefaultStringApplyOnUpdate string

ValueDefaultStringApplyOnUpdate Whether the default value should be applied when updating a record. If set to `always`, the default value will be applied when updating a record. If set to `never`, the default value will not be applied when updating a record, only when creating a record. If unspecified, then `always` is assumed.

const (
	ValueDefaultStringApplyOnUpdateAlways ValueDefaultStringApplyOnUpdate = "always"
	ValueDefaultStringApplyOnUpdateNever  ValueDefaultStringApplyOnUpdate = "never"
)

Defines values for ValueDefaultStringApplyOnUpdate.

func (ValueDefaultStringApplyOnUpdate) Valid

Valid indicates whether the value is a known member of the ValueDefaultStringApplyOnUpdate enum.

type ValueDefaults

type ValueDefaults struct {
	// AllowAnyFields If true, users can set default values for any field.
	AllowAnyFields *bool `json:"allowAnyFields,omitempty"`
}

ValueDefaults Configuration to set default write values for object fields.

type WatchSchema

type WatchSchema struct {
	// AllObjects Schema change event configuration for all objects in the integration.
	AllObjects WatchSchemaAllObjects `json:"allObjects"`

	// Destination The destination to send schema change notifications to.
	Destination string `json:"destination"`

	// Schedule Cron schedule for checking schema changes. Minimum frequency is once per hour. Defaults to once a day.
	Schedule string `json:"schedule,omitempty"`
}

WatchSchema Configuration for monitoring provider schema changes.

type WatchSchemaAllObjects

type WatchSchemaAllObjects struct {
	// FieldChanged Configuration for detecting when fields are changed.
	FieldChanged *FieldChangedEvent `json:"fieldChanged,omitempty"`

	// FieldCreated Configuration for detecting when new fields are created.
	FieldCreated *FieldCreatedEvent `json:"fieldCreated,omitempty"`

	// FieldDeleted Configuration for detecting when fields are deleted.
	FieldDeleted *FieldDeletedEvent `json:"fieldDeleted,omitempty"`
}

WatchSchemaAllObjects Schema change event configuration for all objects in the integration.

type WebhookHeaders

type WebhookHeaders map[string]string

WebhookHeaders Additional headers to add when Ampersand sends a webhook message

type WriteConfig

type WriteConfig struct {
	Objects *map[string]WriteConfigObject `json:"objects,omitempty"`
}

WriteConfig defines model for WriteConfig.

type WriteConfigObject

type WriteConfigObject struct {
	DeletionSettings *DeletionSettings `json:"deletionSettings,omitempty"`

	// ObjectName The name of the object to write to.
	ObjectName string `json:"objectName" validate:"required"`

	// SelectedFieldSettings This is a map of field names to their settings.
	SelectedFieldSettings map[string]FieldSetting `json:"selectedFieldSettings,omitempty"`

	// SelectedValueDefaults This is a map of field names to default values. These values will be used when writing to the object.
	// Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set
	SelectedValueDefaults map[string]ValueDefault `json:"selectedValueDefaults,omitempty"`
}

WriteConfigObject defines model for WriteConfigObject.

Jump to

Keyboard shortcuts

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