-
Notifications
You must be signed in to change notification settings - Fork 31
/
gitrepository_resource.go
107 lines (83 loc) · 6.04 KB
/
gitrepository_resource.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
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
/*
Copyright © 2023 VMware, Inc. All Rights Reserved.
SPDX-License-Identifier: MPL-2.0
*/
package gitrepositoryclustergroupclient
import (
"net/url"
"github.com/vmware/terraform-provider-tanzu-mission-control/internal/client/transport"
"github.com/vmware/terraform-provider-tanzu-mission-control/internal/helper"
gitrepositoryclustergroupmodel "github.com/vmware/terraform-provider-tanzu-mission-control/internal/models/gitrepository/clustergroup"
)
const (
apiVersionAndGroup = "v1alpha1/clustergroups"
apiSubGroup = "namespace"
apiKind = "fluxcd/gitrepositories"
queryParamKeyNamespaceName = "fullName.namespaceName"
queryParamKeyOrgID = "fullName.orgID"
)
// New creates a new cluster Flux CD git repository resource service API client.
func New(transport *transport.Client) ClientService {
return &Client{Client: transport}
}
/*
Client for cluster group Flux CD git repository resource service API.
*/
type Client struct {
*transport.Client
}
// ClientService is the interface for VmwareTanzuManageV1alpha1ClustergroupFluxcdGitrepositoryResourceService Client methods.
type ClientService interface {
VmwareTanzuManageV1alpha1ClustergroupFluxcdGitrepositoryResourceServiceCreate(request *gitrepositoryclustergroupmodel.VmwareTanzuManageV1alpha1ClustergroupNamespaceFluxcdGitrepositoryGitRepositoryRequest) (*gitrepositoryclustergroupmodel.VmwareTanzuManageV1alpha1ClustergroupNamespaceFluxcdGitrepositoryGitRepositoryResponse, error)
VmwareTanzuManageV1alpha1ClustergroupFluxcdGitrepositoryResourceServiceDelete(fn *gitrepositoryclustergroupmodel.VmwareTanzuManageV1alpha1ClustergroupNamespaceFluxcdGitrepositoryFullName) error
VmwareTanzuManageV1alpha1ClustergroupFluxcdGitrepositoryResourceServiceGet(fn *gitrepositoryclustergroupmodel.VmwareTanzuManageV1alpha1ClustergroupNamespaceFluxcdGitrepositoryFullName) (*gitrepositoryclustergroupmodel.VmwareTanzuManageV1alpha1ClustergroupNamespaceFluxcdGitrepositoryGetGitRepositoryResponse, error)
VmwareTanzuManageV1alpha1ClustergroupFluxcdGitrepositoryResourceServiceUpdate(request *gitrepositoryclustergroupmodel.VmwareTanzuManageV1alpha1ClustergroupNamespaceFluxcdGitrepositoryGitRepositoryRequest) (*gitrepositoryclustergroupmodel.VmwareTanzuManageV1alpha1ClustergroupNamespaceFluxcdGitrepositoryGitRepositoryResponse, error)
}
/*
VmwareTanzuManageV1alpha1ClustergroupFluxcdGitrepositoryResourceServiceCreate creates a Flux CD git repository scoped to a cluster group resource.
*/
func (p *Client) VmwareTanzuManageV1alpha1ClustergroupFluxcdGitrepositoryResourceServiceCreate(request *gitrepositoryclustergroupmodel.VmwareTanzuManageV1alpha1ClustergroupNamespaceFluxcdGitrepositoryGitRepositoryRequest) (*gitrepositoryclustergroupmodel.VmwareTanzuManageV1alpha1ClustergroupNamespaceFluxcdGitrepositoryGitRepositoryResponse, error) {
requestURL := helper.ConstructRequestURL(apiVersionAndGroup, request.GitRepository.FullName.ClusterGroupName, apiSubGroup, apiKind).String()
fluxCDGitRepositoryClusterGroupResponse := &gitrepositoryclustergroupmodel.VmwareTanzuManageV1alpha1ClustergroupNamespaceFluxcdGitrepositoryGitRepositoryResponse{}
err := p.Create(requestURL, request, fluxCDGitRepositoryClusterGroupResponse)
return fluxCDGitRepositoryClusterGroupResponse, err
}
/*
VmwareTanzuManageV1alpha1ClustergroupFluxcdGitrepositoryResourceServiceDelete deletes a Flux CD git repository scoped to a cluster group resource.
*/
func (p *Client) VmwareTanzuManageV1alpha1ClustergroupFluxcdGitrepositoryResourceServiceDelete(fn *gitrepositoryclustergroupmodel.VmwareTanzuManageV1alpha1ClustergroupNamespaceFluxcdGitrepositoryFullName) error {
queryParams := url.Values{}
if fn.NamespaceName != "" {
queryParams.Add(queryParamKeyNamespaceName, fn.NamespaceName)
}
if fn.OrgID != "" {
queryParams.Add(queryParamKeyOrgID, fn.OrgID)
}
requestURL := helper.ConstructRequestURL(apiVersionAndGroup, fn.ClusterGroupName, apiSubGroup, apiKind, fn.Name).AppendQueryParams(queryParams).String()
return p.Delete(requestURL)
}
/*
VmwareTanzuManageV1alpha1ClustergroupFluxcdGitrepositoryResourceServiceGet gets a Flux CD git repository scoped to a cluster group resource.
*/
func (p *Client) VmwareTanzuManageV1alpha1ClustergroupFluxcdGitrepositoryResourceServiceGet(fn *gitrepositoryclustergroupmodel.VmwareTanzuManageV1alpha1ClustergroupNamespaceFluxcdGitrepositoryFullName) (*gitrepositoryclustergroupmodel.VmwareTanzuManageV1alpha1ClustergroupNamespaceFluxcdGitrepositoryGetGitRepositoryResponse, error) {
queryParams := url.Values{}
if fn.NamespaceName != "" {
queryParams.Add(queryParamKeyNamespaceName, fn.NamespaceName)
}
if fn.OrgID != "" {
queryParams.Add(queryParamKeyOrgID, fn.OrgID)
}
requestURL := helper.ConstructRequestURL(apiVersionAndGroup, fn.ClusterGroupName, apiSubGroup, apiKind, fn.Name).AppendQueryParams(queryParams).String()
fluxCDGitRepositoryClusterGroupResponse := &gitrepositoryclustergroupmodel.VmwareTanzuManageV1alpha1ClustergroupNamespaceFluxcdGitrepositoryGetGitRepositoryResponse{}
err := p.Get(requestURL, fluxCDGitRepositoryClusterGroupResponse)
return fluxCDGitRepositoryClusterGroupResponse, err
}
/*
VmwareTanzuManageV1alpha1ClustergroupFluxcdGitrepositoryResourceServiceUpdate updates overwrite a Flux CD git repository scoped to a cluster group resource.
*/
func (p *Client) VmwareTanzuManageV1alpha1ClustergroupFluxcdGitrepositoryResourceServiceUpdate(request *gitrepositoryclustergroupmodel.VmwareTanzuManageV1alpha1ClustergroupNamespaceFluxcdGitrepositoryGitRepositoryRequest) (*gitrepositoryclustergroupmodel.VmwareTanzuManageV1alpha1ClustergroupNamespaceFluxcdGitrepositoryGitRepositoryResponse, error) {
requestURL := helper.ConstructRequestURL(apiVersionAndGroup, request.GitRepository.FullName.ClusterGroupName, apiSubGroup, apiKind, request.GitRepository.FullName.Name).String()
fluxCDGitRepositoryClusterGroupResponse := &gitrepositoryclustergroupmodel.VmwareTanzuManageV1alpha1ClustergroupNamespaceFluxcdGitrepositoryGitRepositoryResponse{}
err := p.Update(requestURL, request, fluxCDGitRepositoryClusterGroupResponse)
return fluxCDGitRepositoryClusterGroupResponse, err
}