@@ -24,9 +24,10 @@ const cloudProviderAccessPath = "api/atlas/v1.0/groups/%s/cloudProviderAccess"
2424
2525// CloudProviderAccessService provides access to the cloud provider access functions in the Atlas API.
2626//
27- // See more: https://docs.atlas. mongodb.com/reference/api/cloud-provider-access/
27+ // See more: https://www. mongodb.com/docs/atlas/ reference/api-resources-spec/v2/#tag/Cloud-Provider-Access
2828type CloudProviderAccessService interface {
2929 ListRoles (context.Context , string ) (* CloudProviderAccessRoles , * Response , error )
30+ GetRole (context.Context , string , string ) (* CloudProviderAccessRoles , * Response , error )
3031 CreateRole (context.Context , string , * CloudProviderAccessRoleRequest ) (* AWSIAMRole , * Response , error )
3132 AuthorizeRole (context.Context , string , string , * CloudProviderAuthorizationRequest ) (* AWSIAMRole , * Response , error )
3233 DeauthorizeRole (context.Context , * CloudProviderDeauthorizationRequest ) (* Response , error )
@@ -78,9 +79,37 @@ type CloudProviderDeauthorizationRequest struct {
7879 RoleID string
7980}
8081
81- // ListRoles retrieve existing AWS IAM roles.
82+ // GetRole Returns the Amazon Web Services (AWS) Identity and Access Management (IAM) role
83+ // with the specified id and with access to the specified project.
8284//
83- // See more: https://docs.atlas.mongodb.com/reference/api/cloud-provider-access-get-roles/
85+ // See more: https://www.mongodb.com/docs/atlas/reference/api-resources-spec/v2/#tag/Cloud-Provider-Access/operation/getCloudProviderAccessRole
86+ func (s * CloudProviderAccessServiceOp ) GetRole (ctx context.Context , groupID , roleID string ) (* CloudProviderAccessRoles , * Response , error ) {
87+ if groupID == "" {
88+ return nil , nil , NewArgError ("groupId" , "must be set" )
89+ }
90+ if roleID == "" {
91+ return nil , nil , NewArgError ("roleID" , "must be set" )
92+ }
93+
94+ basePath := fmt .Sprintf (cloudProviderAccessPath , groupID )
95+ path := fmt .Sprintf ("%s/%s" , basePath , roleID )
96+ req , err := s .Client .NewRequest (ctx , http .MethodGet , path , nil )
97+ if err != nil {
98+ return nil , nil , err
99+ }
100+
101+ root := new (CloudProviderAccessRoles )
102+ resp , err := s .Client .Do (ctx , req , root )
103+ if err != nil {
104+ return nil , resp , err
105+ }
106+
107+ return root , resp , nil
108+ }
109+
110+ // ListRoles retrieves existing AWS IAM roles.
111+ //
112+ // See more: https://www.mongodb.com/docs/atlas/reference/api-resources-spec/v2/#tag/Cloud-Provider-Access/operation/listCloudProviderAccessRoles
84113func (s * CloudProviderAccessServiceOp ) ListRoles (ctx context.Context , groupID string ) (* CloudProviderAccessRoles , * Response , error ) {
85114 path := fmt .Sprintf (cloudProviderAccessPath , groupID )
86115
@@ -100,7 +129,7 @@ func (s *CloudProviderAccessServiceOp) ListRoles(ctx context.Context, groupID st
100129
101130// CreateRole creates an AWS IAM role.
102131//
103- // See more: https://docs.atlas. mongodb.com/reference/api/cloud-provider-access-create-one-role/
132+ // See more: https://www. mongodb.com/docs/atlas/ reference/api-resources-spec/v2/#tag/Cloud-Provider-Access/operation/createCloudProviderAccessRole
104133func (s * CloudProviderAccessServiceOp ) CreateRole (ctx context.Context , groupID string , request * CloudProviderAccessRoleRequest ) (* AWSIAMRole , * Response , error ) {
105134 if request == nil {
106135 return nil , nil , NewArgError ("request" , "must be set" )
@@ -124,7 +153,7 @@ func (s *CloudProviderAccessServiceOp) CreateRole(ctx context.Context, groupID s
124153
125154// AuthorizeRole authorizes and configure an AWS Assumed IAM role.
126155//
127- // See more: https://docs.atlas. mongodb.com/reference/api/cloud-provider-access-authorize-one-role/
156+ // See more: https://www. mongodb.com/docs/atlas/ reference/api-resources-spec/v2/#tag/Cloud-Provider-Access/operation/authorizeCloudProviderAccessRole
128157func (s * CloudProviderAccessServiceOp ) AuthorizeRole (ctx context.Context , groupID , roleID string , request * CloudProviderAuthorizationRequest ) (* AWSIAMRole , * Response , error ) {
129158 if roleID == "" {
130159 return nil , nil , NewArgError ("roleID" , "must be set" )
@@ -153,7 +182,7 @@ func (s *CloudProviderAccessServiceOp) AuthorizeRole(ctx context.Context, groupI
153182
154183// DeauthorizeRole deauthorizes an AWS Assumed IAM role.
155184//
156- // See more: https://docs.atlas. mongodb.com/reference/api/cloud-provider-access-deauthorize-one-role/
185+ // See more: https://www. mongodb.com/docs/atlas/ reference/api-resources-spec/v2/#tag/Cloud-Provider-Access/operation/deauthorizeCloudProviderAccessRole
157186func (s * CloudProviderAccessServiceOp ) DeauthorizeRole (ctx context.Context , request * CloudProviderDeauthorizationRequest ) (* Response , error ) {
158187 if request .RoleID == "" {
159188 return nil , NewArgError ("roleID" , "must be set" )
0 commit comments