-
Notifications
You must be signed in to change notification settings - Fork 34
Expand file tree
/
Copy pathvaults.go
More file actions
168 lines (145 loc) · 5.07 KB
/
Copy pathvaults.go
File metadata and controls
168 lines (145 loc) · 5.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
// Code generated by op-codegen - DO NOT EDIT
package onepassword
import (
"context"
"encoding/json"
"github.com/1password/onepassword-sdk-go/internal"
)
// The Vaults API holds all the operations the SDK client can perform on 1Password vaults.
type VaultsAPI interface {
// Create a new user vault.
Create(ctx context.Context, params VaultCreateParams) (Vault, error)
// List information about vaults that's configurable based on some input parameters.
List(ctx context.Context, params ...VaultListParams) ([]VaultOverview, error)
// Get an overview of a vault by its ID.
GetOverview(ctx context.Context, vaultID string) (VaultOverview, error)
// Get detailed vault information by vault ID and parameters.
Get(ctx context.Context, vaultID string, vaultParams VaultGetParams) (Vault, error)
// Update a vault
Update(ctx context.Context, vaultID string, params VaultUpdateParams) (Vault, error)
// Delete a vault by its ID.
Delete(ctx context.Context, vaultID string) error
// Grant group permissions to a vault.
GrantGroupPermissions(ctx context.Context, vaultID string, groupPermissionsList []GroupAccess) error
// Update group permissions for vaults.
UpdateGroupPermissions(ctx context.Context, groupPermissionsList []GroupVaultAccess) error
// Revoke group permissions from a vault.
RevokeGroupPermissions(ctx context.Context, vaultID string, groupID string) error
}
type VaultsSource struct {
*internal.InnerClient
}
func NewVaultsSource(inner *internal.InnerClient) VaultsAPI {
return &VaultsSource{InnerClient: inner}
}
// Create a new user vault.
func (v VaultsSource) Create(ctx context.Context, params VaultCreateParams) (Vault, error) {
resultString, err := clientInvoke(ctx, v.InnerClient, "VaultsCreate", map[string]interface{}{
"params": params,
})
if err != nil {
return Vault{}, err
}
var result Vault
err = json.Unmarshal([]byte(*resultString), &result)
if err != nil {
return Vault{}, err
}
return result, nil
}
// List information about vaults that's configurable based on some input parameters.
func (v VaultsSource) List(ctx context.Context, params ...VaultListParams) ([]VaultOverview, error) {
var param *VaultListParams
if len(params) > 0 {
param = ¶ms[0]
}
resultString, err := clientInvoke(ctx, v.InnerClient, "VaultsList", map[string]interface{}{
"params": param,
})
if err != nil {
return nil, err
}
var result []VaultOverview
err = json.Unmarshal([]byte(*resultString), &result)
if err != nil {
return nil, err
}
return result, nil
}
// Get an overview of a vault by its ID.
func (v VaultsSource) GetOverview(ctx context.Context, vaultID string) (VaultOverview, error) {
resultString, err := clientInvoke(ctx, v.InnerClient, "VaultsGetOverview", map[string]interface{}{
"vault_id": vaultID,
})
if err != nil {
return VaultOverview{}, err
}
var result VaultOverview
err = json.Unmarshal([]byte(*resultString), &result)
if err != nil {
return VaultOverview{}, err
}
return result, nil
}
// Get detailed vault information by vault ID and parameters.
func (v VaultsSource) Get(ctx context.Context, vaultID string, vaultParams VaultGetParams) (Vault, error) {
resultString, err := clientInvoke(ctx, v.InnerClient, "VaultsGet", map[string]interface{}{
"vault_id": vaultID,
"vault_params": vaultParams,
})
if err != nil {
return Vault{}, err
}
var result Vault
err = json.Unmarshal([]byte(*resultString), &result)
if err != nil {
return Vault{}, err
}
return result, nil
}
// Update a vault
func (v VaultsSource) Update(ctx context.Context, vaultID string, params VaultUpdateParams) (Vault, error) {
resultString, err := clientInvoke(ctx, v.InnerClient, "VaultsUpdate", map[string]interface{}{
"vault_id": vaultID,
"params": params,
})
if err != nil {
return Vault{}, err
}
var result Vault
err = json.Unmarshal([]byte(*resultString), &result)
if err != nil {
return Vault{}, err
}
return result, nil
}
// Delete a vault by its ID.
func (v VaultsSource) Delete(ctx context.Context, vaultID string) error {
_, err := clientInvoke(ctx, v.InnerClient, "VaultsDelete", map[string]interface{}{
"vault_id": vaultID,
})
return err
}
// Grant group permissions to a vault.
func (v VaultsSource) GrantGroupPermissions(ctx context.Context, vaultID string, groupPermissionsList []GroupAccess) error {
_, err := clientInvoke(ctx, v.InnerClient, "VaultsGrantGroupPermissions", map[string]interface{}{
"vault_id": vaultID,
"group_permissions_list": groupPermissionsList,
})
return err
}
// Update group permissions for vaults.
func (v VaultsSource) UpdateGroupPermissions(ctx context.Context, groupPermissionsList []GroupVaultAccess) error {
_, err := clientInvoke(ctx, v.InnerClient, "VaultsUpdateGroupPermissions", map[string]interface{}{
"group_permissions_list": groupPermissionsList,
})
return err
}
// Revoke group permissions from a vault.
func (v VaultsSource) RevokeGroupPermissions(ctx context.Context, vaultID string, groupID string) error {
_, err := clientInvoke(ctx, v.InnerClient, "VaultsRevokeGroupPermissions", map[string]interface{}{
"vault_id": vaultID,
"group_id": groupID,
})
return err
}