in cfn-resources/cloud-provider-snapshot-restore-jobs/cmd/resource/resource.go [159:203]
func List(req handler.Request, prevModel *Model, currentModel *Model) (handler.ProgressEvent, error) {
client, err := util.CreateMongoDBClient(*currentModel.ApiKeys.PublicKey, *currentModel.ApiKeys.PrivateKey)
if err != nil {
return handler.ProgressEvent{}, err
}
projectId := *currentModel.ProjectId
snapshotRequest := &matlasClient.SnapshotReqPathParameters{
GroupID: projectId,
ClusterName: *currentModel.ClusterName,
}
params := &matlasClient.ListOptions{
PageNum: 0,
ItemsPerPage: 100,
}
restoreJobs, _, err := client.CloudProviderSnapshotRestoreJobs.List(context.Background(), snapshotRequest, params)
if err != nil {
return handler.ProgressEvent{}, fmt.Errorf("error reading cloud provider snapshot restore job list with id(project: %s): %s", projectId, err)
}
var models []Model
for _, restoreJob := range restoreJobs.Results {
var model Model
model.TargetClusterName = &restoreJob.TargetClusterName
model.DeliveryType = &restoreJob.DeliveryType
model.ExpiresAt = &restoreJob.ExpiresAt
model.CreatedAt = &restoreJob.CreatedAt
model.Id = &restoreJob.ID
model.FinishedAt = &restoreJob.FinishedAt
model.SnapshotId = &restoreJob.SnapshotID
model.TargetProjectId = &restoreJob.TargetGroupID
model.Timestamp = &restoreJob.Timestamp
model.Cancelled = &restoreJob.Cancelled
model.Expired = &restoreJob.Expired
model.DeliveryUrl = restoreJob.DeliveryURL
model.Links = flattenLinks(restoreJob.Links)
models = append(models, model)
}
return handler.ProgressEvent{
OperationStatus: handler.Success,
Message: "List complete",
ResourceModel: models,
}, nil
}