-
Notifications
You must be signed in to change notification settings - Fork 19
/
api.go
62 lines (51 loc) · 2.35 KB
/
api.go
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
package api
import (
"context"
"github.com/Azure/azure-sdk-for-go/profiles/latest/authorization/mgmt/authorization"
"github.com/Azure/go-autorest/autorest"
"github.com/Azure/go-autorest/autorest/date"
)
// AzureProvider is an interface to access underlying Azure Client objects and supporting services.
// Where practical the original function signature is preserved. Client provides higher
// level operations atop AzureProvider.
type AzureProvider interface {
ApplicationsClient
GroupsClient
ServicePrincipalClient
CreateRoleAssignment(
ctx context.Context,
scope string,
roleAssignmentName string,
parameters authorization.RoleAssignmentCreateParameters) (authorization.RoleAssignment, error)
DeleteRoleAssignmentByID(ctx context.Context, roleID string) (authorization.RoleAssignment, error)
ListRoleDefinitions(ctx context.Context, scope string, filter string) ([]authorization.RoleDefinition, error)
GetRoleDefinitionByID(ctx context.Context, roleID string) (result authorization.RoleDefinition, err error)
}
type ApplicationsClient interface {
GetApplication(ctx context.Context, applicationObjectID string) (result ApplicationResult, err error)
CreateApplication(ctx context.Context, displayName string) (result ApplicationResult, err error)
DeleteApplication(ctx context.Context, applicationObjectID string) (autorest.Response, error)
AddApplicationPassword(ctx context.Context, applicationObjectID string, displayName string, endDateTime date.Time) (result PasswordCredentialResult, err error)
RemoveApplicationPassword(ctx context.Context, applicationObjectID string, keyID string) (result autorest.Response, err error)
}
type PasswordCredential struct {
DisplayName *string `json:"displayName"`
// StartDate - Start date.
StartDate *date.Time `json:"startDateTime,omitempty"`
// EndDate - End date.
EndDate *date.Time `json:"endDateTime,omitempty"`
// KeyID - Key ID.
KeyID *string `json:"keyId,omitempty"`
// Value - Key value.
SecretText *string `json:"secretText,omitempty"`
}
type PasswordCredentialResult struct {
autorest.Response `json:"-"`
PasswordCredential
}
type ApplicationResult struct {
autorest.Response `json:"-"`
AppID *string `json:"appId,omitempty"`
ID *string `json:"id,omitempty"`
PasswordCredentials []*PasswordCredential `json:"passwordCredentials,omitempty"`
}