All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.capitalone.dashboard.rest.CloudVolumeController Maven / Gradle / Ivy

There is a newer version: 3.4.53
Show newest version
package com.capitalone.dashboard.rest;

import com.capitalone.dashboard.model.CloudVolumeStorage;
import com.capitalone.dashboard.model.NameValue;
import com.capitalone.dashboard.request.CloudVolumeCreateRequest;
import com.capitalone.dashboard.request.CloudVolumeListRefreshRequest;
import com.capitalone.dashboard.response.CloudVolumeAggregatedResponse;
import com.capitalone.dashboard.service.CloudVolumeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;
import java.util.Collection;
import java.util.List;

import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
import static org.springframework.web.bind.annotation.RequestMethod.POST;

@RestController
public class CloudVolumeController {
    private final CloudVolumeService cloudVolumeService;


    @Autowired
    public CloudVolumeController(CloudVolumeService cloudVolumeService) {
        this.cloudVolumeService = cloudVolumeService;

    }

    //Cloud Volume Endpoints
    @RequestMapping(value = "/cloud/volume/refresh", method = POST, consumes = APPLICATION_JSON_VALUE,
            produces = APPLICATION_JSON_VALUE)

    public ResponseEntity> refreshVolumes(
            @Valid @RequestBody CloudVolumeListRefreshRequest request) {
        return ResponseEntity.ok().body(cloudVolumeService.refreshVolumes(request));
    }

    @RequestMapping(value = "/cloud/volume/create", method = POST, consumes = APPLICATION_JSON_VALUE,
            produces = APPLICATION_JSON_VALUE)
    public ResponseEntity> upsertVolume(
            @Valid @RequestBody List request) {
        return ResponseEntity.ok().body(cloudVolumeService.upsertVolume(request));
    }


    @RequestMapping(value = "/cloud/volume/details/component/{componentId}", method = GET, produces = APPLICATION_JSON_VALUE)
    public ResponseEntity> getVolumeDetailsByComponentId(
            @PathVariable String componentId) {
        return ResponseEntity.ok().body(cloudVolumeService.getVolumeDetailsByComponentId(componentId));
    }

    @RequestMapping(value = "/cloud/volume/details/volumes/{volumeIds}", method = GET, produces = APPLICATION_JSON_VALUE)
    public ResponseEntity> getVolumeDetailsByVolumeIds(
            @PathVariable List volumeIds) {
        return ResponseEntity.ok().body(cloudVolumeService.getVolumeDetailsByVolumeIds(volumeIds));
    }

    @RequestMapping(value = "/cloud/volume/details/instanceIds", method = POST, consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE)
    public ResponseEntity> getVolumeDetailsByInstanceIds(@Valid @RequestBody List instanceIds) {
        return ResponseEntity.ok().body(cloudVolumeService.getVolumeDetailsByInstanceIds(instanceIds));
    }


    @RequestMapping(value = "/cloud/volume/details/account/{accountNumber}", method = GET, produces = APPLICATION_JSON_VALUE)
    public ResponseEntity> getVolumeDetailsByAccount(
            @PathVariable String accountNumber) {
        return ResponseEntity.ok().body(cloudVolumeService.getVolumeDetailsByAccount(accountNumber));
    }

    @RequestMapping(value = "/cloud/volume/details/tags", method = POST, consumes = APPLICATION_JSON_VALUE,
            produces = APPLICATION_JSON_VALUE)
    public ResponseEntity> getVolumeDetailsByTags(
            @Valid @RequestBody List tags) {
        return ResponseEntity.ok().body(cloudVolumeService.getVolumeDetailsByTags(tags));
    }

    @RequestMapping(value = "/cloud/volume/aggregate/component/{componentId}", method = GET, produces = APPLICATION_JSON_VALUE)
    public ResponseEntity getVolumeAggregatedData(
            @PathVariable String componentId) {
        return ResponseEntity.ok().body(cloudVolumeService.getVolumeAggregatedData(componentId));
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy