# coding: utf-8
# Copyright (c) 2016, 2026, Oracle and/or its affiliates.  All rights reserved.
# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.

# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20190531

from .manage_bds_certificate_level_type_details import ManageBdsCertificateLevelTypeDetails
from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel  # noqa: F401
from oci.decorators import init_model_state_from_kwargs


@init_model_state_from_kwargs
class ConfigLevelManageBdsCertificateDetails(ManageBdsCertificateLevelTypeDetails):
    """
    Details of certificate configuration / certificate authority level used to trigger the BDS certificate generation or renewal.
    """

    def __init__(self, **kwargs):
        """
        Initializes a new ConfigLevelManageBdsCertificateDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.bds.models.ConfigLevelManageBdsCertificateDetails.trigger_type` attribute
        of this class is ``CONFIG_LEVEL`` and it should not be changed.
        The following keyword arguments are supported (corresponding to the getters/setters of this class):

        :param trigger_type:
            The value to assign to the trigger_type property of this ConfigLevelManageBdsCertificateDetails.
            Allowed values for this property are: "NODE_LEVEL", "CONFIG_LEVEL"
        :type trigger_type: str

        :param certificate_configuration_id:
            The value to assign to the certificate_configuration_id property of this ConfigLevelManageBdsCertificateDetails.
        :type certificate_configuration_id: str

        :param is_missing_nodes_only:
            The value to assign to the is_missing_nodes_only property of this ConfigLevelManageBdsCertificateDetails.
        :type is_missing_nodes_only: bool

        """
        self.swagger_types = {
            'trigger_type': 'str',
            'certificate_configuration_id': 'str',
            'is_missing_nodes_only': 'bool'
        }
        self.attribute_map = {
            'trigger_type': 'triggerType',
            'certificate_configuration_id': 'certificateConfigurationId',
            'is_missing_nodes_only': 'isMissingNodesOnly'
        }
        self._trigger_type = None
        self._certificate_configuration_id = None
        self._is_missing_nodes_only = None
        self._trigger_type = 'CONFIG_LEVEL'

    @property
    def certificate_configuration_id(self):
        """
        **[Required]** Gets the certificate_configuration_id of this ConfigLevelManageBdsCertificateDetails.
        The id of the BDS certificate configuration used to generate or renew BDS certificate(s).


        :return: The certificate_configuration_id of this ConfigLevelManageBdsCertificateDetails.
        :rtype: str
        """
        return self._certificate_configuration_id

    @certificate_configuration_id.setter
    def certificate_configuration_id(self, certificate_configuration_id):
        """
        Sets the certificate_configuration_id of this ConfigLevelManageBdsCertificateDetails.
        The id of the BDS certificate configuration used to generate or renew BDS certificate(s).


        :param certificate_configuration_id: The certificate_configuration_id of this ConfigLevelManageBdsCertificateDetails.
        :type: str
        """
        self._certificate_configuration_id = certificate_configuration_id

    @property
    def is_missing_nodes_only(self):
        """
        Gets the is_missing_nodes_only of this ConfigLevelManageBdsCertificateDetails.
        Boolean flag specifying whether the request will only generate certificates for nodes which do not have the same certificate authority as the certificate configuration or not. The flag is only used for generating certificates from CONFIG_LEVEL.


        :return: The is_missing_nodes_only of this ConfigLevelManageBdsCertificateDetails.
        :rtype: bool
        """
        return self._is_missing_nodes_only

    @is_missing_nodes_only.setter
    def is_missing_nodes_only(self, is_missing_nodes_only):
        """
        Sets the is_missing_nodes_only of this ConfigLevelManageBdsCertificateDetails.
        Boolean flag specifying whether the request will only generate certificates for nodes which do not have the same certificate authority as the certificate configuration or not. The flag is only used for generating certificates from CONFIG_LEVEL.


        :param is_missing_nodes_only: The is_missing_nodes_only of this ConfigLevelManageBdsCertificateDetails.
        :type: bool
        """
        self._is_missing_nodes_only = is_missing_nodes_only

    def __repr__(self):
        return formatted_flat_dict(self)

    def __eq__(self, other):
        if other is None:
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not self == other
