# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload
from .. import _utilities

__all__ = [
    'GetRecommendationsRecommendationResult',
]

@pulumi.output_type
class GetRecommendationsRecommendationResult(dict):
    def __init__(__self__, *,
                 category: str,
                 description: str,
                 impact: str,
                 recommendation_name: str,
                 recommendation_type_id: str,
                 resource_name: str,
                 resource_type: str,
                 suppression_names: Sequence[str],
                 updated_time: str):
        """
        :param str category: The category of the recommendation.
        :param str description: The description of the issue or the opportunity identified by the recommendation.
        :param str impact: The business impact of the recommendation.
        :param str recommendation_name: The name of the Advisor Recommendation.
        :param str recommendation_type_id: The recommendation type id of the Advisor Recommendation.
        :param str resource_name: The name of the identified resource of the Advisor Recommendation.
        :param str resource_type: The type of the identified resource of the Advisor Recommendation.
        :param Sequence[str] suppression_names: A list of Advisor Suppression names of the Advisor Recommendation.
        :param str updated_time: The most recent time that Advisor checked the validity of the recommendation..
        """
        GetRecommendationsRecommendationResult._configure(
            lambda key, value: pulumi.set(__self__, key, value),
            category=category,
            description=description,
            impact=impact,
            recommendation_name=recommendation_name,
            recommendation_type_id=recommendation_type_id,
            resource_name=resource_name,
            resource_type=resource_type,
            suppression_names=suppression_names,
            updated_time=updated_time,
        )
    @staticmethod
    def _configure(
             _setter: Callable[[Any, Any], None],
             category: Optional[str] = None,
             description: Optional[str] = None,
             impact: Optional[str] = None,
             recommendation_name: Optional[str] = None,
             recommendation_type_id: Optional[str] = None,
             resource_name: Optional[str] = None,
             resource_type: Optional[str] = None,
             suppression_names: Optional[Sequence[str]] = None,
             updated_time: Optional[str] = None,
             opts: Optional[pulumi.ResourceOptions] = None,
             **kwargs):
        if category is None:
            raise TypeError("Missing 'category' argument")
        if description is None:
            raise TypeError("Missing 'description' argument")
        if impact is None:
            raise TypeError("Missing 'impact' argument")
        if recommendation_name is None and 'recommendationName' in kwargs:
            recommendation_name = kwargs['recommendationName']
        if recommendation_name is None:
            raise TypeError("Missing 'recommendation_name' argument")
        if recommendation_type_id is None and 'recommendationTypeId' in kwargs:
            recommendation_type_id = kwargs['recommendationTypeId']
        if recommendation_type_id is None:
            raise TypeError("Missing 'recommendation_type_id' argument")
        if resource_name is None and 'resourceName' in kwargs:
            resource_name = kwargs['resourceName']
        if resource_name is None:
            raise TypeError("Missing 'resource_name' argument")
        if resource_type is None and 'resourceType' in kwargs:
            resource_type = kwargs['resourceType']
        if resource_type is None:
            raise TypeError("Missing 'resource_type' argument")
        if suppression_names is None and 'suppressionNames' in kwargs:
            suppression_names = kwargs['suppressionNames']
        if suppression_names is None:
            raise TypeError("Missing 'suppression_names' argument")
        if updated_time is None and 'updatedTime' in kwargs:
            updated_time = kwargs['updatedTime']
        if updated_time is None:
            raise TypeError("Missing 'updated_time' argument")

        _setter("category", category)
        _setter("description", description)
        _setter("impact", impact)
        _setter("recommendation_name", recommendation_name)
        _setter("recommendation_type_id", recommendation_type_id)
        _setter("resource_name", resource_name)
        _setter("resource_type", resource_type)
        _setter("suppression_names", suppression_names)
        _setter("updated_time", updated_time)

    @property
    @pulumi.getter
    def category(self) -> str:
        """
        The category of the recommendation.
        """
        return pulumi.get(self, "category")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        The description of the issue or the opportunity identified by the recommendation.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def impact(self) -> str:
        """
        The business impact of the recommendation.
        """
        return pulumi.get(self, "impact")

    @property
    @pulumi.getter(name="recommendationName")
    def recommendation_name(self) -> str:
        """
        The name of the Advisor Recommendation.
        """
        return pulumi.get(self, "recommendation_name")

    @property
    @pulumi.getter(name="recommendationTypeId")
    def recommendation_type_id(self) -> str:
        """
        The recommendation type id of the Advisor Recommendation.
        """
        return pulumi.get(self, "recommendation_type_id")

    @property
    @pulumi.getter(name="resourceName")
    def resource_name(self) -> str:
        """
        The name of the identified resource of the Advisor Recommendation.
        """
        return pulumi.get(self, "resource_name")

    @property
    @pulumi.getter(name="resourceType")
    def resource_type(self) -> str:
        """
        The type of the identified resource of the Advisor Recommendation.
        """
        return pulumi.get(self, "resource_type")

    @property
    @pulumi.getter(name="suppressionNames")
    def suppression_names(self) -> Sequence[str]:
        """
        A list of Advisor Suppression names of the Advisor Recommendation.
        """
        return pulumi.get(self, "suppression_names")

    @property
    @pulumi.getter(name="updatedTime")
    def updated_time(self) -> str:
        """
        The most recent time that Advisor checked the validity of the recommendation..
        """
        return pulumi.get(self, "updated_time")


