Skip to content

start_cost_estimation

start_cost_estimation(
    resource_collection: CostEstimationResourceCollectionFilter,
    *,
    config_overrides: Optional[DevOpsGuruClientConfig] = None,
    client_token: Optional[ClientToken] = None,
) -> StartCostEstimationResponse

Starts the creation of an estimate of the monthly cost to analyze your Amazon Web Services resources.

Parameters:

  • resource_collection (CostEstimationResourceCollectionFilter) –

    The collection of Amazon Web Services resources used to create a monthly DevOps Guru cost estimate.

  • client_token (Optional[ClientToken], default: None ) –

    The idempotency token used to identify each cost estimate request.

Raises:

Source code in docs_src/capo_devops_guru/_services/dev_ops_guru.py
def start_cost_estimation(
    self,
    resource_collection: "capo_devops_guru.types.cost_estimation_resource_collection_filter.CostEstimationResourceCollectionFilter",
    *,
    config_overrides: Optional[DevOpsGuruClientConfig] = None,
    client_token: Optional[
        "capo_devops_guru.types.client_token.ClientToken"
    ] = None,
) -> "capo_devops_guru.types.start_cost_estimation_response.StartCostEstimationResponse":
    """<p>Starts the creation of an estimate of the monthly cost to analyze your Amazon Web Services resources.</p>

    Args:
        resource_collection: <p>The collection of Amazon Web Services resources used to create a monthly DevOps Guru cost estimate.</p>
        client_token: <p>The idempotency token used to identify each cost estimate request.</p>

    Raises:
        capo_devops_guru.errors.access_denied_exception.AccessDeniedException: <p> You don't have permissions to perform the requested operation. The user or role that is making the request must have at least one IAM permissions policy attached that grants the required permissions. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html">Access Management</a> in the <i>IAM User Guide</i>. </p>
        capo_devops_guru.errors.conflict_exception.ConflictException: <p> An exception that is thrown when a conflict occurs. </p>
        capo_devops_guru.errors.internal_server_exception.InternalServerException: <p>An internal failure in an Amazon service occurred.</p>
        capo_devops_guru.errors.resource_not_found_exception.ResourceNotFoundException: <p>A requested resource could not be found</p>
        capo_devops_guru.errors.throttling_exception.ThrottlingException: <p>The request was denied due to a request throttling.</p>
        capo_devops_guru.errors.validation_exception.ValidationException: <p> Contains information about data passed in to a field during a request that is not valid. </p>
        capo_devops_guru.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_devops_guru.types.start_cost_estimation_request.StartCostEstimationRequest]",
    ) -> OperationResponse[
        "capo_devops_guru.types.start_cost_estimation_response.StartCostEstimationResponse"
    ]:
        import capo_devops_guru._operations.capstone_control_plane_service.start_cost_estimation

        output, http_response = (
            capo_devops_guru._operations.capstone_control_plane_service.start_cost_estimation.start_cost_estimation(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("StartCostEstimation")
    )
    input_: capo_devops_guru.types.start_cost_estimation_request.StartCostEstimationRequest = {
        "resource_collection": resource_collection
    }
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output