carlos / platform Public

Clone
git clone https://amadan.net/carlos/platform

Plain git — no account needed to clone.

Download

Download this file

1package mail
2
3import (
4 "context"
5
6 "github.com/carlosframework/platform/internal/dnsrec"
7 "github.com/carlosframework/platform/internal/hostops"
8)
9
10// claimMarkedProvisioner and claimMarkedWriter record that an effect was
11// issued under the held gate. Named private fields; every method written
12// out. A new interface method fails the compile-time assertions below
13// instead of being forwarded unmarked.
14type claimMarkedProvisioner struct{ raw Provisioner }
15
16var _ Provisioner = claimMarkedProvisioner{}
17
18func (p claimMarkedProvisioner) EnsureTenant(ctx context.Context, name string) error {
19 err := p.raw.EnsureTenant(ctx, name)
20 markClaimMailEffect(ctx, hostops.MailAttempt{Surface: "ses-tenant", Method: "EnsureTenant", Name: name}, err)
21 return err
22}
23func (p claimMarkedProvisioner) EnsureConfigSet(ctx context.Context, region, name, topic string) error {
24 err := p.raw.EnsureConfigSet(ctx, region, name, topic)
25 markClaimMailEffect(ctx, hostops.MailAttempt{Surface: "ses-config-set", Method: "EnsureConfigSet", Region: region, Name: name}, err)
26 return err
27}
28func (p claimMarkedProvisioner) SetIdentityConfigSet(ctx context.Context, region, domain, set string) error {
29 err := p.raw.SetIdentityConfigSet(ctx, region, domain, set)
30 markClaimMailEffect(ctx, hostops.MailAttempt{Surface: "ses-identity", Method: "SetIdentityConfigSet", Region: region, Domain: domain}, err)
31 return err
32}
33func (p claimMarkedProvisioner) AssociateTenantResource(ctx context.Context, tenant, resource string) error {
34 err := p.raw.AssociateTenantResource(ctx, tenant, resource)
35 markClaimMailEffect(ctx, hostops.MailAttempt{Surface: "ses-tenant", Method: "AssociateTenantResource", Name: tenant + " " + resource}, err)
36 return err
37}
38func (p claimMarkedProvisioner) DisassociateTenantResource(ctx context.Context, tenant, resource string) error {
39 err := p.raw.DisassociateTenantResource(ctx, tenant, resource)
40 markClaimMailEffect(ctx, hostops.MailAttempt{Surface: "ses-tenant", Method: "DisassociateTenantResource", Name: tenant + " " + resource}, err)
41 return err
42}
43func (p claimMarkedProvisioner) EnsureIdentity(ctx context.Context, region, domain, from string, adopt bool) (Identity, error) {
44 id, err := p.raw.EnsureIdentity(ctx, region, domain, from, adopt)
45 markClaimMailEffect(ctx, hostops.MailAttempt{Surface: "ses-identity", Method: "EnsureIdentity", Region: region, Domain: domain}, err)
46 return id, err
47}
48func (p claimMarkedProvisioner) IdentityStatus(ctx context.Context, region, domain string) (Status, error) {
49 return p.raw.IdentityStatus(ctx, region, domain)
50}
51func (p claimMarkedProvisioner) DeleteIdentity(ctx context.Context, region, domain string) error {
52 err := p.raw.DeleteIdentity(ctx, region, domain)
53 markClaimMailEffect(ctx, hostops.MailAttempt{Surface: "ses-identity", Method: "DeleteIdentity", Region: region, Domain: domain}, err)
54 return err
55}
56func (p claimMarkedProvisioner) EnsureUser(ctx context.Context, name, path string, identities, sets, domains []string) (string, error) {
57 arn, err := p.raw.EnsureUser(ctx, name, path, identities, sets, domains)
58 markClaimMailEffect(ctx, hostops.MailAttempt{Surface: "iam", Method: "EnsureUser", Name: name}, err)
59 return arn, err
60}
61func (p claimMarkedProvisioner) MintKey(ctx context.Context, user string) (string, string, error) {
62 id, secret, err := p.raw.MintKey(ctx, user)
63 markClaimMailEffect(ctx, hostops.MailAttempt{Surface: "iam", Method: "MintKey", Name: user}, err)
64 return id, secret, err
65}
66func (p claimMarkedProvisioner) SetKeyActive(ctx context.Context, user, key string, active bool) error {
67 err := p.raw.SetKeyActive(ctx, user, key, active)
68 markClaimMailEffect(ctx, hostops.MailAttempt{Surface: "iam", Method: "SetKeyActive", Name: user}, err)
69 return err
70}
71func (p claimMarkedProvisioner) DeleteKey(ctx context.Context, user, key string) error {
72 err := p.raw.DeleteKey(ctx, user, key)
73 markClaimMailEffect(ctx, hostops.MailAttempt{Surface: "iam", Method: "DeleteKey", Name: user}, err)
74 return err
75}
76func (p claimMarkedProvisioner) ReapKeys(ctx context.Context, user string, keep []string) error {
77 err := p.raw.ReapKeys(ctx, user, keep)
78 markClaimMailEffect(ctx, hostops.MailAttempt{Surface: "iam", Method: "ReapKeys", Name: user}, err)
79 return err
80}
81func (p claimMarkedProvisioner) DeleteUser(ctx context.Context, user string) error {
82 err := p.raw.DeleteUser(ctx, user)
83 markClaimMailEffect(ctx, hostops.MailAttempt{Surface: "iam", Method: "DeleteUser", Name: user}, err)
84 return err
85}
86
87type claimMarkedWriter struct{ raw dnsrec.Writer }
88
89var _ dnsrec.Writer = claimMarkedWriter{}
90
91func (w claimMarkedWriter) EnsureRecord(ctx context.Context, record dnsrec.Record) error {
92 err := w.raw.EnsureRecord(ctx, record)
93 markClaimMailEffect(ctx, hostops.MailAttempt{Surface: "dns", Method: "EnsureRecord", Name: record.Key()}, err)
94 return err
95}
96func (w claimMarkedWriter) DeleteRecord(ctx context.Context, record dnsrec.Record) error {
97 err := w.raw.DeleteRecord(ctx, record)
98 markClaimMailEffect(ctx, hostops.MailAttempt{Surface: "dns", Method: "DeleteRecord", Name: record.Key()}, err)
99 return err
100}
101