Interface S3StorageResource

All Superinterfaces:
com.iland.core.aws.s3.query.api.AwsS3AccountsApi, com.iland.core.aws.s3.query.api.AwsS3AlertsApi, com.iland.core.aws.s3.query.api.AwsS3BillingApi, com.iland.core.aws.s3.query.api.AwsS3ContractsApi, com.iland.core.aws.s3.query.api.AwsS3CreateAlertsApi, com.iland.core.aws.s3.query.api.AwsS3CustomerApi, com.iland.core.aws.s3.query.api.AwsS3DeleteAlertsApi, com.iland.core.aws.s3.query.api.AwsS3EditAlertsApi, com.iland.core.aws.s3.query.api.AwsS3GetAlertsApi, com.iland.core.aws.s3.query.api.AwsS3GlobalAlertsApi, com.iland.core.aws.s3.query.api.AwsS3UsageApi, com.iland.core.services.monocle.api.MonocleAwsBucketService, com.iland.core.services.monocle.api.MonocleAwsKeyManagementServiceApi

@Path("/s3-storage") @Consumes("application/json") @Produces("application/vnd.ilandcloud.api.v1.0+json") public interface S3StorageResource extends com.iland.core.aws.s3.query.api.AwsS3AlertsApi, com.iland.core.aws.s3.query.api.AwsS3BillingApi, com.iland.core.aws.s3.query.api.AwsS3CustomerApi, com.iland.core.aws.s3.query.api.AwsS3GlobalAlertsApi, com.iland.core.aws.s3.query.api.AwsS3UsageApi, com.iland.core.services.monocle.api.MonocleAwsKeyManagementServiceApi, com.iland.core.services.monocle.api.MonocleAwsBucketService
Resource endpoints to get AWS S3 billing and usage info.
  • Method Details

    • getContractsForCompany

      @GET @Path("/{companyId}/contracts") com.iland.core.web.rest.s3.response.S3ContractSetResponse getContractsForCompany(@PathParam("companyId") String companyId)
      Get the AWS S3 contracts given the company id. Status may be ACTIVATED or CANCELLED.
      Specified by:
      getContractsForCompany in interface com.iland.core.aws.s3.query.api.AwsS3ContractsApi
      Parameters:
      companyId - the company id
      Returns:
      contracts for the company
    • getContractByUuid

      @GET @Path("/{companyId}/contracts/{contractUuid}") com.iland.core.web.rest.s3.response.S3ContractResponse getContractByUuid(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid)
      Get a specified S3 contract by its unique UUID. Status may be ACTIVATED or CANCELLED.
      Specified by:
      getContractByUuid in interface com.iland.core.aws.s3.query.api.AwsS3ContractsApi
      Parameters:
      companyId - The ID of the company associated with the contract.
      contractUuid - The unique UUID of the contract to retrieve.
      Returns:
      A S3 contract.
    • getAccountById

      @GET @Path("/{companyId}/contracts/{contractUuid}/accounts/{accountId}") com.iland.core.web.rest.s3.response.AwsAccountResponse getAccountById(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("accountId") String accountId)
      Gets an AWS account by its ID within a specific contract.
      Specified by:
      getAccountById in interface com.iland.core.aws.s3.query.api.AwsS3AccountsApi
      Parameters:
      companyId - The ID of the company associated with the contract.
      contractUuid - The unique UUID of the contract that contains the account.
      accountId - The ID of the AWS account to retrieve.
      Returns:
      An AWS account.
    • getAccountsForContract

      @GET @Path("/{companyId}/contracts/{contractUuid}/accounts") com.iland.core.web.rest.s3.response.AwsAccountSetResponse getAccountsForContract(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid)
      Get the AWS accounts for the given contract uuid and company id.
      Specified by:
      getAccountsForContract in interface com.iland.core.aws.s3.query.api.AwsS3AccountsApi
      Parameters:
      companyId - The contract's company id
      contractUuid - The contract uuid
      Returns:
      a set of accounts
    • createAwsAccount

      @POST @Path("/{companyId}/contracts/{contractUuid}/accounts") com.iland.core.web.rest.response.monocle.AwsAccountCreationResponse createAwsAccount(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, AwsAccountCreateUpdateRequest awsAccountCreateUpdateRequest)
      Create AWS account for a given contract uuid, company id and request body.
      Parameters:
      companyId - The contract's company id
      contractUuid - The contract uuid
      awsAccountCreateUpdateRequest - aws account creation request
      Returns:
      aws account creation response
    • updateAwsAccountName

      @PUT @Path("/{companyId}/contracts/{contractUuid}/accounts/{accountId}") void updateAwsAccountName(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("accountId") String accountId, AwsAccountCreateUpdateRequest awsAccountCreateUpdateRequest)
      Update the name of an AWS account.
      Parameters:
      companyId - The ID of the company associated with the contract.
      contractUuid - The unique UUID of the contract that contains the account.
      accountId - The ID of the AWS account to retrieve.
      awsAccountCreateUpdateRequest - aws account update request
    • getMonthlyStorageUsageByContract

      @GET @Path("/{companyId}/contracts/{contractUuid}/regionCode/{regionCode}/month-usage") com.iland.core.web.rest.s3.response.AwsMonthTotalUsageByClassForContractSetResponse getMonthlyStorageUsageByContract(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("regionCode") String regionCode, @QueryParam("yearMonthId") Integer yearMonthId)
      Get the monthly storage usage for a given contract. Year month id is in the format YYYYMM, ex: 202409 If no year month is provided then it's defaulted to the current month.
      Specified by:
      getMonthlyStorageUsageByContract in interface com.iland.core.aws.s3.query.api.AwsS3UsageApi
      Parameters:
      companyId - The contract's company id
      contractUuid - The contract id
      regionCode - The contract's region id
      yearMonthId - The month and year period
      Returns:
      a set of usage totals in bytes and storage class
    • getMonthlyStorageUsageByAccount

      @GET @Path("/{companyId}/contracts/{contractUuid}/regionCode/{regionCode}/account/{accountId}/month-usage") com.iland.core.web.rest.s3.response.AwsMonthTotalUsageByClassForAccountSetResponse getMonthlyStorageUsageByAccount(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("regionCode") String regionCode, @PathParam("accountId") String accountId, @QueryParam("yearMonthId") Integer yearMonthId)
      Get the monthly storage usage for a given account. Year month id is in the format YYYYMM, ex: 202409 If no year month is provided then it's defaulted to the current month.
      Specified by:
      getMonthlyStorageUsageByAccount in interface com.iland.core.aws.s3.query.api.AwsS3UsageApi
      Parameters:
      companyId - The contract's company id
      contractUuid - The contract id
      regionCode - The contract's region code
      accountId - The account id
      yearMonthId - The month and year period
      Returns:
      a set of usage totals in bytes and storage class
    • getDailyUsageForContractByTime

      @GET @Path("/{companyId}/contracts/{contractUuid}/regionCode/{regionCode}/day-usage") com.iland.core.web.rest.s3.response.AwsContractUsageDayMapResponse getDailyUsageForContractByTime(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("regionCode") String regionCode, @QueryParam("start") Long start, @QueryParam("end") Long end)
      Get the daily storage usage for a given contract over a range of time. Start and end date are in epoch milli.
      Specified by:
      getDailyUsageForContractByTime in interface com.iland.core.aws.s3.query.api.AwsS3UsageApi
      Parameters:
      companyId - The contract's company id
      contractUuid - The contract uuid
      regionCode - The contract's region code
      start - start date
      end - end date
      Returns:
      a set of daily storage usage totals in bytes and the storage class.
    • getMonthlyAccountsUsageByContract

      @GET @Path("/{companyId}/contracts/{contractUuid}/regionCode/{regionCode}/account-usage") com.iland.core.web.rest.s3.response.AwsAccountStorageSetResponse getMonthlyAccountsUsageByContract(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("regionCode") String regionCode, @QueryParam("yearMonthId") Integer yearMonthId, @QueryParam("page") Integer page, @QueryParam("limit") Integer limit)
      Get the monthly storage used in bytes for the accounts of a given contract. If no year month is provided then it's defaulted to the current month. Default page is 0 and default limit is 25.
      Specified by:
      getMonthlyAccountsUsageByContract in interface com.iland.core.aws.s3.query.api.AwsS3UsageApi
      Parameters:
      companyId - company id
      contractUuid - contract uuid
      regionCode - region code
      yearMonthId - year month id
      page - page
      limit - limit
      Returns:
      a set of account ids to their storage used for the given year and month
    • getDailyUsageForAccountByTime

      @GET @Path("/{companyId}/contracts/{contractUuid}/regionCode/{regionCode}/account/{accountId}/day-usage") com.iland.core.web.rest.s3.response.AwsContractUsageDayMapResponse getDailyUsageForAccountByTime(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("regionCode") String regionCode, @PathParam("accountId") String accountId, @QueryParam("start") Long start, @QueryParam("end") Long end)
      Get the daily storage usage in bytes for the given account for a time period.
      Specified by:
      getDailyUsageForAccountByTime in interface com.iland.core.aws.s3.query.api.AwsS3UsageApi
      Parameters:
      companyId - company id
      contractUuid - contract uuid
      regionCode - region code
      accountId - account id
      start - start
      end - end
      Returns:
      a map of storage class ids to a list of samples which have the time and storage used in bytes
    • getMonthlyBillingSummary

      @GET @Path("/{companyId}/contracts/{contractUuid}/regionCode/{regionCode}/monthly-bill") com.iland.core.web.rest.s3.response.AwsBillingSummarySetResponse getMonthlyBillingSummary(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("regionCode") String regionCode, @QueryParam("yearMonthIdStart") Integer yearMonthIdStart, @QueryParam("yearMonthIdEnd") Integer yearMonthIdEnd)
      Get the monthly billing summaries given a contract, region, company and range of dates.
      Specified by:
      getMonthlyBillingSummary in interface com.iland.core.aws.s3.query.api.AwsS3BillingApi
      Parameters:
      companyId - company id
      contractUuid - contract uuid
      regionCode - region code
      yearMonthIdStart - year month id start- YYYYMM format
      yearMonthIdEnd - year month id end - YYYYMM format
      Returns:
      a set of billing summaries for the given time range
    • getDailyBillingSummary

      @GET @Path("/{companyId}/contracts/{contractUuid}/regionCode/{regionCode}/day-bill") com.iland.core.web.rest.s3.response.AwsBillingSummarySetResponse getDailyBillingSummary(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("regionCode") String regionCode, @QueryParam("start") Long start, @QueryParam("end") Long end)
      Get the daily billing summaries for the given time range. These are summaries of the bill day by day given a start and end date in epoch milli.
      Specified by:
      getDailyBillingSummary in interface com.iland.core.aws.s3.query.api.AwsS3BillingApi
      Parameters:
      companyId - company id
      contractUuid - contract uuid
      regionCode - region code
      start - start
      end - end
      Returns:
      daily billing summaries for the given time range
    • getMonthlyStorageCSV

      @GET @Path("/{companyId}/contracts/{contractUuid}/regionCode/{regionCode}/monthly-storage-csv") @Produces("application/vnd.ilandcloud.api.v1.0+octet-stream") InputStream getMonthlyStorageCSV(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("regionCode") String regionCode, @QueryParam("accountId") String accountId, @QueryParam("yearMonthId") Integer yearMonthId)
      Get the monthly storage used CSV. Optional parameters are the accountId and the storageOnly. If you pass in an accountId you will only get the storage usage data pertaining to that account. If you pass storageOnly to true then you will get only the storage usage line items. The following fields are currently returned: aws_offer_name, year_month_id, aws_account_id, product_family, product_grouping, aws_sku, contract_number, is_estimate, month, price_description, usage_total, year, aws_usage_month, company_id, contract_uuid, region_code
      Specified by:
      getMonthlyStorageCSV in interface com.iland.core.aws.s3.query.api.AwsS3UsageApi
      Parameters:
      companyId - company id
      contractUuid - contract uuid
      regionCode - region code
      accountId - account id
      yearMonthId - year month id
      Returns:
      a monthly storage CSV
    • getBillingReportCSV

      @GET @Path("/{companyId}/contracts/{contractUuid}/regionCode/{regionCode}/bill-csv") @Produces("application/vnd.ilandcloud.api.v1.0+octet-stream") InputStream getBillingReportCSV(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("regionCode") String regionCode, @QueryParam("yearMonthId") Integer yearMonthId)
      Get the billing report CSV.
      Specified by:
      getBillingReportCSV in interface com.iland.core.aws.s3.query.api.AwsS3BillingApi
      Parameters:
      companyId - company id
      contractUuid - contract uuid
      regionCode - region code
      yearMonthId - year month id
      Returns:
      billing report CSV
    • createStorageAlert

      @POST @Path("/{companyId}/storage-alert") com.iland.core.web.rest.s3.response.AwsAlertResponse createStorageAlert(@PathParam("companyId") String companyId, com.iland.core.web.rest.s3.request.AwsThresholdAlertRequest request)
      Create a storage alert for a given company, region and user.
      Specified by:
      createStorageAlert in interface com.iland.core.aws.s3.query.api.AwsS3CreateAlertsApi
      Parameters:
      companyId - company id.
      request - request body containing config to create the alert
      Returns:
      the details for the created alert.
    • createBillingAlert

      @POST @Path("/{companyId}/billing-alert") com.iland.core.web.rest.s3.response.AwsAlertResponse createBillingAlert(@PathParam("companyId") String companyId, com.iland.core.web.rest.s3.request.AwsThresholdAlertRequest request)
      Create a billing alert for a given company, region and user.
      Specified by:
      createBillingAlert in interface com.iland.core.aws.s3.query.api.AwsS3CreateAlertsApi
      Parameters:
      companyId - company id.
      request - request body containing config to create the alert
      Returns:
      the details for the created alert.
    • createStorageConfigAlert

      @POST @Path("/{companyId}/storage-config-alert") com.iland.core.web.rest.s3.response.AwsAlertResponse createStorageConfigAlert(@PathParam("companyId") String companyId, com.iland.core.web.rest.s3.request.AwsStorageConfigAlertRequest request)
      Create a storage config alert for a given company, region and user.
      Specified by:
      createStorageConfigAlert in interface com.iland.core.aws.s3.query.api.AwsS3CreateAlertsApi
      Parameters:
      companyId - company id.
      request - request body containing config to create the alert
      Returns:
      the details for the created alert.
    • getAlerts

      @GET @Path("/{companyId}/alerts/{contractUuid}") SetResponse<com.iland.core.web.rest.s3.response.AwsAlertResponse> getAlerts(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid)
      Get all alerts for a company.
      Specified by:
      getAlerts in interface com.iland.core.aws.s3.query.api.AwsS3GetAlertsApi
      Parameters:
      companyId - company id.
      Returns:
      the alerts for the company.
    • getStorageClasses

      @GET @Path("/storage-classes") SetResponse<com.iland.core.web.rest.s3.response.AwsStorageClassResponse> getStorageClasses()
      Get all storage classes.
      Specified by:
      getStorageClasses in interface com.iland.core.aws.s3.query.api.AwsS3GetAlertsApi
      Returns:
      the existent storage classes.
    • deleteAlert

      @DELETE @Path("/{companyId}/alert") void deleteAlert(@PathParam("companyId") String companyId, com.iland.core.web.rest.s3.request.AwsDeleteAlertRequest request)
      Delete an alert for a company, given it's uuid.
      Specified by:
      deleteAlert in interface com.iland.core.aws.s3.query.api.AwsS3DeleteAlertsApi
      Parameters:
      companyId - company id.
      request - the alert uuids to be deleted
    • editBillingAlert

      @PUT @Path("/{companyId}/alerts/{alertUuid}/billing-alert") void editBillingAlert(@PathParam("companyId") String companyId, @PathParam("alertUuid") com.iland.core.web.rest.s3.request.AwsAlertUuid alertUuid, com.iland.core.web.rest.s3.request.AwsEditThresholdAlertRequest request)
      Edit a billing alert for a company, given it's uuid.
      Specified by:
      editBillingAlert in interface com.iland.core.aws.s3.query.api.AwsS3EditAlertsApi
      Parameters:
      companyId - company id.
      alertUuid - the alert uuid.
      request - request body containing config to edit the alert.
    • editStorageAlert

      @PUT @Path("/{companyId}/alerts/{alertUuid}/storage-alert") void editStorageAlert(@PathParam("companyId") String companyId, @PathParam("alertUuid") com.iland.core.web.rest.s3.request.AwsAlertUuid alertUuid, com.iland.core.web.rest.s3.request.AwsEditThresholdAlertRequest request)
      Edit a storage alert for a company, given it's uuid.
      Specified by:
      editStorageAlert in interface com.iland.core.aws.s3.query.api.AwsS3EditAlertsApi
      Parameters:
      companyId - company id.
      alertUuid - the alert uuid.
      request - request body containing config to edit the alert.
    • editStorageConfigAlert

      @PUT @Path("/{companyId}/alerts/{alertUuid}/storage-config-alert") void editStorageConfigAlert(@PathParam("companyId") String companyId, @PathParam("alertUuid") com.iland.core.web.rest.s3.request.AwsAlertUuid alertUuid, com.iland.core.web.rest.s3.request.AwsStorageConfigEditRequest request)
      Edit a storage config alert for a company, given it's uuid.
      Specified by:
      editStorageConfigAlert in interface com.iland.core.aws.s3.query.api.AwsS3EditAlertsApi
      Parameters:
      companyId - company id.
      alertUuid - the alert uuid.
      request - request body containing config to edit the alert.
    • getGlobalAlertExclusions

      @GET @Path("/{companyId}/global-alerts") com.iland.core.web.rest.s3.response.AwsGlobalAlertExclusionResponse getGlobalAlertExclusions(@PathParam("companyId") String companyId)
      Retrieve the enabled alert types for a given user.
      Specified by:
      getGlobalAlertExclusions in interface com.iland.core.aws.s3.query.api.AwsS3GlobalAlertsApi
      Parameters:
      companyId - the company id
    • editGlobalAlertExclusion

      @POST @Path("/{companyId}/global-alerts") void editGlobalAlertExclusion(@PathParam("companyId") String companyId, com.iland.core.web.rest.s3.request.AwsEditGlobalAlertExclusionRequest request)
      Add or remove a global alert exclusion based on exclude property. If the exclusion is already configured and exclude is true, no changes are applied. Same applies for the inverse case.
      Specified by:
      editGlobalAlertExclusion in interface com.iland.core.aws.s3.query.api.AwsS3GlobalAlertsApi
      Parameters:
      companyId - the company id
      request - the request body containing the alert type and exclusion flag
    • getAwsAccountKeys

      @GET @Path("/{companyId}/contracts/{contractUuid}/accounts/{accountId}/keys") com.iland.core.web.rest.response.monocle.AwsAccountKeySetResponse getAwsAccountKeys(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("accountId") String accountId)
      Gets the account's keys.
      Specified by:
      getAwsAccountKeys in interface com.iland.core.services.monocle.api.MonocleAwsKeyManagementServiceApi
      Parameters:
      companyId - The account's company id
      contractUuid - The account's contract id
      accountId - The account id
      Returns:
      A list of the account's keys.
    • generateAwsAccountKeys

      @POST @Path("/{companyId}/contracts/{contractUuid}/accounts/{accountId}/keys") com.iland.core.web.rest.response.monocle.AwsAccountKeyResponse generateAwsAccountKeys(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("accountId") String accountId, com.iland.core.web.rest.request.monocle.AwsAccountKeyRequest keyRequest)
      Generates a new key for this account. An account can only have up to 5 keys and if hits that limit, it will return an error. A description can be sent, but if not it will be autogenerated.
      Specified by:
      generateAwsAccountKeys in interface com.iland.core.services.monocle.api.MonocleAwsKeyManagementServiceApi
      Parameters:
      companyId - The account's company id
      contractUuid - The account's contract id
      accountId - The account id
      keyRequest - The key request. Only the description can be set. If nothing gets set it will get autogenerated.
      Returns:
      A new key. The secret key field will be populated.
    • updateAwsAccountKey

      @PUT @Path("/{companyId}/contracts/{contractUuid}/accounts/{accountId}/keys/{accessKey}/description") void updateAwsAccountKey(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("accountId") String accountId, @PathParam("accessKey") String accessKey, com.iland.core.web.rest.request.monocle.AwsAccountKeyRequest keyRequest)
      Updates the key's description.
      Specified by:
      updateAwsAccountKey in interface com.iland.core.services.monocle.api.MonocleAwsKeyManagementServiceApi
      Parameters:
      companyId - The account's company id
      contractUuid - The account's contract id
      accountId - The account id
      accessKey - The key id.
      keyRequest - The key request. Only the description can be set. If nothing gets set it will get autogenerated.
    • enableAwsAccountKey

      @PUT @Path("/{companyId}/contracts/{contractUuid}/accounts/{accountId}/keys/{accessKey}/enable") void enableAwsAccountKey(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("accountId") String accountId, @PathParam("accessKey") String accessKey)
      Enables a key.
      Specified by:
      enableAwsAccountKey in interface com.iland.core.services.monocle.api.MonocleAwsKeyManagementServiceApi
      Parameters:
      companyId - The account's company id
      contractUuid - The account's contract id
      accountId - The account id
      accessKey - The key id.
    • disableAwsAccountKey

      @PUT @Path("/{companyId}/contracts/{contractUuid}/accounts/{accountId}/keys/{accessKey}/disable") void disableAwsAccountKey(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("accountId") String accountId, @PathParam("accessKey") String accessKey)
      Disables a key
      Specified by:
      disableAwsAccountKey in interface com.iland.core.services.monocle.api.MonocleAwsKeyManagementServiceApi
      Parameters:
      companyId - The account's company id
      contractUuid - The account's contract id
      accountId - The account id
      accessKey - The key id.
    • rotateAwsAccountKey

      @PUT @Path("/{companyId}/contracts/{contractUuid}/accounts/{accountId}/keys/{accessKey}/rotate") com.iland.core.web.rest.response.monocle.AwsAccountKeyResponse rotateAwsAccountKey(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("accountId") String accountId, @PathParam("accessKey") String accessKey)
      Rotates a key. The key sent in the request won't show up. The new key will have a new access and secret key.
      Specified by:
      rotateAwsAccountKey in interface com.iland.core.services.monocle.api.MonocleAwsKeyManagementServiceApi
      Parameters:
      companyId - The account's company id
      contractUuid - The account's contract id
      accountId - The account id
      accessKey - The key id.
      Returns:
      The newly rotated key. It's secret key will be populated.
    • deleteAwsAccountKey

      @DELETE @Path("/{companyId}/contracts/{contractUuid}/accounts/{accountId}/keys/{accessKey}") void deleteAwsAccountKey(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("accountId") String accountId, @PathParam("accessKey") String accessKey)
      Deletes a key.
      Specified by:
      deleteAwsAccountKey in interface com.iland.core.services.monocle.api.MonocleAwsKeyManagementServiceApi
      Parameters:
      companyId - The account's company id
      contractUuid - The account's contract id
      accountId - The account id
      accessKey - The key id.
    • getS3BucketsForAccount

      @GET @Path("/{companyId}/contracts/{contractUuid}/accounts/{accountId}/s3-buckets") com.iland.core.web.rest.response.monocle.S3BucketSetResponse getS3BucketsForAccount(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("accountId") String accountId, @QueryParam("limit") @DefaultValue("200") int limit, @QueryParam("offset") @DefaultValue("0") int offset, @QueryParam("sort") String sort, @QueryParam("filter") List<String> filters)
      Returns S3 buckets for the specified AWS account. Supports pagination, sorting, and filtering. Supported sort values use bucket fields, for example name or usage_bytes. Prefix sort with '-' for descending order. Filters use key=value format. Supported operators in value are eq, ne, gt, lt, and like.
      Parameters:
      companyId - company ID associated with the AWS account
      contractUuid - contract UUID associated with the AWS account
      accountId - AWS account ID
      limit - maximum buckets to return (default 200)
      offset - zero-based pagination offset (default 0)
      sort - optional sort field
      filters - optional filter list
      Returns:
      S3BucketSetResponse
    • exportS3BucketsForAccount

      @GET @Path("/{companyId}/contracts/{contractUuid}/accounts/{accountId}/s3-buckets/export") @Produces("application/vnd.ilandcloud.api.v1.0+octet-stream") InputStream exportS3BucketsForAccount(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("accountId") String accountId)
      Exports all S3 buckets for the specified account as a CSV file.
      Parameters:
      companyId - company ID associated with the AWS account
      contractUuid - contract UUID associated with the AWS account
      accountId - AWS account ID
      Returns:
      an InputStream containing the CSV export of all buckets for the specified account
    • createS3BucketForAccount

      @POST @Path("/{companyId}/contracts/{contractUuid}/accounts/{accountId}/s3-buckets") void createS3BucketForAccount(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @PathParam("accountId") String accountId, com.iland.core.web.rest.request.monocle.AwsAccountS3BucketRequest awsAccountS3BucketRequest)
      Creates a new S3 bucket for the specified AWS account.
      Specified by:
      createS3BucketForAccount in interface com.iland.core.services.monocle.api.MonocleAwsBucketService
      Parameters:
      companyId - The AWS Account's company id
      contractUuid - The AWS Account's contract id
      accountId - The AWS Account Id associated with the new bucket.
      awsAccountS3BucketRequest - The bucket's name (must follow AWS rules) and whether object lock is enabled on the new bucket.
    • getS3PriceIncreaseCalculation

      @GET @Path("/{companyId}/contracts/{contractUuid}/s3-increase-info/") com.iland.core.web.rest.response.monocle.S3IncreaseStoragePriceInfoResponse getS3PriceIncreaseCalculation(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, @QueryParam("quantity") int quantityInTib)
      Get the information about a S3 price increase. Included in the response are the following: - currency - price per unit - total price
      Parameters:
      companyId - The AWS Account's company id
      contractUuid - The AWS contract id
      quantityInTib - quantity to increase in TiB.
      Returns:
      information about the S3 price increase given the quantity
    • increaseS3Storage

      @POST @Path("/{companyId}/contracts/{contractUuid}/s3-increase-storage/") void increaseS3Storage(@PathParam("companyId") String companyId, @PathParam("contractUuid") String contractUuid, AwsS3IncreaseStorageRequest awsS3IncreaseStorageRequest)
      Increase S3 storage for a given company and their contract, given a quantity in TiB.
      Parameters:
      companyId - The AWS Account's company id
      contractUuid - The AWS contract id
      awsS3IncreaseStorageRequest - request for quantity to increase in TiB.