// Code generated by cmd/asyncapi-event-contracts from specs/asyncapi/access-manager.v1.yaml; DO NOT EDIT.

package access

const SchemaVersion = 1

const (
	EventOrganizationCreated             = "access.organization.created"
	EventOrganizationUpdated             = "access.organization.updated"
	EventOrganizationSuspended           = "access.organization.suspended"
	EventOrganizationArchived            = "access.organization.archived"
	EventUserCreated                     = "access.user.created"
	EventUserUpdated                     = "access.user.updated"
	EventUserIdentityLinked              = "access.user.identity_linked"
	EventUserStatusChanged               = "access.user.status_changed"
	EventAllowlistEntryCreated           = "access.allowlist_entry.created"
	EventAllowlistEntryUpdated           = "access.allowlist_entry.updated"
	EventAllowlistEntryDisabled          = "access.allowlist_entry.disabled"
	EventGroupCreated                    = "access.group.created"
	EventGroupUpdated                    = "access.group.updated"
	EventGroupDisabled                   = "access.group.disabled"
	EventMembershipCreated               = "access.membership.created"
	EventMembershipUpdated               = "access.membership.updated"
	EventMembershipDisabled              = "access.membership.disabled"
	EventExternalProviderCreated         = "access.external_provider.created"
	EventExternalProviderUpdated         = "access.external_provider.updated"
	EventExternalProviderDisabled        = "access.external_provider.disabled"
	EventExternalAccountCreated          = "access.external_account.created"
	EventExternalAccountUpdated          = "access.external_account.updated"
	EventExternalAccountStatusChanged    = "access.external_account.status_changed"
	EventExternalAccountSecretRefChanged = "access.external_account.secret_ref_changed"
	EventExternalAccountBindingCreated   = "access.external_account_binding.created"
	EventExternalAccountBindingUpdated   = "access.external_account_binding.updated"
	EventExternalAccountBindingDisabled  = "access.external_account_binding.disabled"
	EventSecretBindingRefCreated         = "access.secret_binding_ref.created"
	EventSecretBindingRefRotated         = "access.secret_binding_ref.rotated"
	EventSecretBindingRefDisabled        = "access.secret_binding_ref.disabled"
	EventAccessActionCreated             = "access.access_action.created"
	EventAccessActionUpdated             = "access.access_action.updated"
	EventAccessActionDisabled            = "access.access_action.disabled"
	EventAccessRuleCreated               = "access.access_rule.created"
	EventAccessRuleUpdated               = "access.access_rule.updated"
	EventAccessRuleDisabled              = "access.access_rule.disabled"
	EventAccessDecisionRecorded          = "access.access_decision.recorded"
)

const (
	AggregateAccessAction           = "access_action"
	AggregateAccessDecisionAudit    = "access_decision_audit"
	AggregateAccessRule             = "access_rule"
	AggregateAllowlistEntry         = "allowlist_entry"
	AggregateExternalAccount        = "external_account"
	AggregateExternalAccountBinding = "external_account_binding"
	AggregateExternalProvider       = "external_provider"
	AggregateGroup                  = "group"
	AggregateMembership             = "membership"
	AggregateOrganization           = "organization"
	AggregateSecretBindingRef       = "secret_binding_ref"
	AggregateUser                   = "user"
)

// Payload is the generated common payload envelope for domain events.
type Payload struct {
	AccessActionID           string `json:"access_action_id,omitempty"`
	AccessDecisionAuditID    string `json:"access_decision_audit_id,omitempty"`
	AccessRuleID             string `json:"access_rule_id,omitempty"`
	AccountType              string `json:"account_type,omitempty"`
	ActionKey                string `json:"action_key,omitempty"`
	AllowlistEntryID         string `json:"allowlist_entry_id,omitempty"`
	Decision                 string `json:"decision,omitempty"`
	Effect                   string `json:"effect,omitempty"`
	ExternalAccountBindingID string `json:"external_account_binding_id,omitempty"`
	ExternalAccountID        string `json:"external_account_id,omitempty"`
	ExternalProviderID       string `json:"external_provider_id,omitempty"`
	GroupID                  string `json:"group_id,omitempty"`
	IdentityID               string `json:"identity_id,omitempty"`
	IdentityProvider         string `json:"identity_provider,omitempty"`
	Kind                     string `json:"kind,omitempty"`
	MatchType                string `json:"match_type,omitempty"`
	MembershipID             string `json:"membership_id,omitempty"`
	NewStatus                string `json:"new_status,omitempty"`
	OldStatus                string `json:"old_status,omitempty"`
	OrganizationID           string `json:"organization_id,omitempty"`
	ReasonCode               string `json:"reason_code,omitempty"`
	ScopeID                  string `json:"scope_id,omitempty"`
	ScopeType                string `json:"scope_type,omitempty"`
	SecretBindingRefID       string `json:"secret_binding_ref_id,omitempty"`
	Slug                     string `json:"slug,omitempty"`
	Status                   string `json:"status,omitempty"`
	StoreType                string `json:"store_type,omitempty"`
	SubjectID                string `json:"subject_id,omitempty"`
	SubjectType              string `json:"subject_type,omitempty"`
	TargetID                 string `json:"target_id,omitempty"`
	TargetType               string `json:"target_type,omitempty"`
	UsageScopeID             string `json:"usage_scope_id,omitempty"`
	UsageScopeType           string `json:"usage_scope_type,omitempty"`
	UserID                   string `json:"user_id,omitempty"`
	Version                  int64  `json:"version,omitempty"`
}
