# 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: 20251101


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 InfrastructureSummary(object):
    """
    Database Infrastructure resource summary.
    """

    #: A constant which can be used with the system_model property of a InfrastructureSummary.
    #: This constant has a value of "X11_HA_768"
    SYSTEM_MODEL_X11_HA_768 = "X11_HA_768"

    #: A constant which can be used with the system_model property of a InfrastructureSummary.
    #: This constant has a value of "X10_HA_512"
    SYSTEM_MODEL_X10_HA_512 = "X10_HA_512"

    #: A constant which can be used with the system_model property of a InfrastructureSummary.
    #: This constant has a value of "X8_HA_384"
    SYSTEM_MODEL_X8_HA_384 = "X8_HA_384"

    #: A constant which can be used with the shape property of a InfrastructureSummary.
    #: This constant has a value of "SIX_SSDS"
    SHAPE_SIX_SSDS = "SIX_SSDS"

    #: A constant which can be used with the shape property of a InfrastructureSummary.
    #: This constant has a value of "TWELVE_SSDS"
    SHAPE_TWELVE_SSDS = "TWELVE_SSDS"

    #: A constant which can be used with the shape property of a InfrastructureSummary.
    #: This constant has a value of "EIGHTEEN_SSDS"
    SHAPE_EIGHTEEN_SSDS = "EIGHTEEN_SSDS"

    #: A constant which can be used with the shape property of a InfrastructureSummary.
    #: This constant has a value of "TWENTY_FOUR_SSDS"
    SHAPE_TWENTY_FOUR_SSDS = "TWENTY_FOUR_SSDS"

    #: A constant which can be used with the client_network_bonding_mode property of a InfrastructureSummary.
    #: This constant has a value of "ACTIVE_BACKUP"
    CLIENT_NETWORK_BONDING_MODE_ACTIVE_BACKUP = "ACTIVE_BACKUP"

    #: A constant which can be used with the client_network_bonding_mode property of a InfrastructureSummary.
    #: This constant has a value of "LACP"
    CLIENT_NETWORK_BONDING_MODE_LACP = "LACP"

    #: A constant which can be used with the backup_network_bonding_mode property of a InfrastructureSummary.
    #: This constant has a value of "ACTIVE_BACKUP"
    BACKUP_NETWORK_BONDING_MODE_ACTIVE_BACKUP = "ACTIVE_BACKUP"

    #: A constant which can be used with the backup_network_bonding_mode property of a InfrastructureSummary.
    #: This constant has a value of "LACP"
    BACKUP_NETWORK_BONDING_MODE_LACP = "LACP"

    #: A constant which can be used with the cps_network_bonding_mode property of a InfrastructureSummary.
    #: This constant has a value of "ACTIVE_BACKUP"
    CPS_NETWORK_BONDING_MODE_ACTIVE_BACKUP = "ACTIVE_BACKUP"

    #: A constant which can be used with the cps_network_bonding_mode property of a InfrastructureSummary.
    #: This constant has a value of "LACP"
    CPS_NETWORK_BONDING_MODE_LACP = "LACP"

    #: A constant which can be used with the client_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND1"
    CLIENT_NETWORK_BONDING_INTERFACE_BTBOND1 = "BTBOND1"

    #: A constant which can be used with the client_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND2"
    CLIENT_NETWORK_BONDING_INTERFACE_BTBOND2 = "BTBOND2"

    #: A constant which can be used with the client_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND3"
    CLIENT_NETWORK_BONDING_INTERFACE_BTBOND3 = "BTBOND3"

    #: A constant which can be used with the client_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND4"
    CLIENT_NETWORK_BONDING_INTERFACE_BTBOND4 = "BTBOND4"

    #: A constant which can be used with the client_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND5"
    CLIENT_NETWORK_BONDING_INTERFACE_BTBOND5 = "BTBOND5"

    #: A constant which can be used with the client_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND6"
    CLIENT_NETWORK_BONDING_INTERFACE_BTBOND6 = "BTBOND6"

    #: A constant which can be used with the backup_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND1"
    BACKUP_NETWORK_BONDING_INTERFACE_BTBOND1 = "BTBOND1"

    #: A constant which can be used with the backup_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND2"
    BACKUP_NETWORK_BONDING_INTERFACE_BTBOND2 = "BTBOND2"

    #: A constant which can be used with the backup_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND3"
    BACKUP_NETWORK_BONDING_INTERFACE_BTBOND3 = "BTBOND3"

    #: A constant which can be used with the backup_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND4"
    BACKUP_NETWORK_BONDING_INTERFACE_BTBOND4 = "BTBOND4"

    #: A constant which can be used with the backup_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND5"
    BACKUP_NETWORK_BONDING_INTERFACE_BTBOND5 = "BTBOND5"

    #: A constant which can be used with the backup_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND6"
    BACKUP_NETWORK_BONDING_INTERFACE_BTBOND6 = "BTBOND6"

    #: A constant which can be used with the cps_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND1"
    CPS_NETWORK_BONDING_INTERFACE_BTBOND1 = "BTBOND1"

    #: A constant which can be used with the cps_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND2"
    CPS_NETWORK_BONDING_INTERFACE_BTBOND2 = "BTBOND2"

    #: A constant which can be used with the cps_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND3"
    CPS_NETWORK_BONDING_INTERFACE_BTBOND3 = "BTBOND3"

    #: A constant which can be used with the cps_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND4"
    CPS_NETWORK_BONDING_INTERFACE_BTBOND4 = "BTBOND4"

    #: A constant which can be used with the cps_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND5"
    CPS_NETWORK_BONDING_INTERFACE_BTBOND5 = "BTBOND5"

    #: A constant which can be used with the cps_network_bonding_interface property of a InfrastructureSummary.
    #: This constant has a value of "BTBOND6"
    CPS_NETWORK_BONDING_INTERFACE_BTBOND6 = "BTBOND6"

    #: A constant which can be used with the lifecycle_state property of a InfrastructureSummary.
    #: This constant has a value of "CREATING"
    LIFECYCLE_STATE_CREATING = "CREATING"

    #: A constant which can be used with the lifecycle_state property of a InfrastructureSummary.
    #: This constant has a value of "REQUIRES_VALIDATION"
    LIFECYCLE_STATE_REQUIRES_VALIDATION = "REQUIRES_VALIDATION"

    #: A constant which can be used with the lifecycle_state property of a InfrastructureSummary.
    #: This constant has a value of "VALIDATING"
    LIFECYCLE_STATE_VALIDATING = "VALIDATING"

    #: A constant which can be used with the lifecycle_state property of a InfrastructureSummary.
    #: This constant has a value of "VALIDATION_FAILED"
    LIFECYCLE_STATE_VALIDATION_FAILED = "VALIDATION_FAILED"

    #: A constant which can be used with the lifecycle_state property of a InfrastructureSummary.
    #: This constant has a value of "REQUIRES_ACTIVATION"
    LIFECYCLE_STATE_REQUIRES_ACTIVATION = "REQUIRES_ACTIVATION"

    #: A constant which can be used with the lifecycle_state property of a InfrastructureSummary.
    #: This constant has a value of "ACTIVATING"
    LIFECYCLE_STATE_ACTIVATING = "ACTIVATING"

    #: A constant which can be used with the lifecycle_state property of a InfrastructureSummary.
    #: This constant has a value of "ACTIVE"
    LIFECYCLE_STATE_ACTIVE = "ACTIVE"

    #: A constant which can be used with the lifecycle_state property of a InfrastructureSummary.
    #: This constant has a value of "ACTIVATION_FAILED"
    LIFECYCLE_STATE_ACTIVATION_FAILED = "ACTIVATION_FAILED"

    #: A constant which can be used with the lifecycle_state property of a InfrastructureSummary.
    #: This constant has a value of "FAILED"
    LIFECYCLE_STATE_FAILED = "FAILED"

    #: A constant which can be used with the lifecycle_state property of a InfrastructureSummary.
    #: This constant has a value of "UPDATING"
    LIFECYCLE_STATE_UPDATING = "UPDATING"

    #: A constant which can be used with the lifecycle_state property of a InfrastructureSummary.
    #: This constant has a value of "DELETING"
    LIFECYCLE_STATE_DELETING = "DELETING"

    #: A constant which can be used with the lifecycle_state property of a InfrastructureSummary.
    #: This constant has a value of "DELETED"
    LIFECYCLE_STATE_DELETED = "DELETED"

    #: A constant which can be used with the lifecycle_state property of a InfrastructureSummary.
    #: This constant has a value of "DISCONNECTED"
    LIFECYCLE_STATE_DISCONNECTED = "DISCONNECTED"

    #: A constant which can be used with the lifecycle_state property of a InfrastructureSummary.
    #: This constant has a value of "MAINTENANCE_IN_PROGRESS"
    LIFECYCLE_STATE_MAINTENANCE_IN_PROGRESS = "MAINTENANCE_IN_PROGRESS"

    #: A constant which can be used with the ssd_configuration_requested property of a InfrastructureSummary.
    #: This constant has a value of "SIX_SSDS"
    SSD_CONFIGURATION_REQUESTED_SIX_SSDS = "SIX_SSDS"

    #: A constant which can be used with the ssd_configuration_requested property of a InfrastructureSummary.
    #: This constant has a value of "TWELVE_SSDS"
    SSD_CONFIGURATION_REQUESTED_TWELVE_SSDS = "TWELVE_SSDS"

    #: A constant which can be used with the ssd_configuration_requested property of a InfrastructureSummary.
    #: This constant has a value of "EIGHTEEN_SSDS"
    SSD_CONFIGURATION_REQUESTED_EIGHTEEN_SSDS = "EIGHTEEN_SSDS"

    #: A constant which can be used with the ssd_configuration_requested property of a InfrastructureSummary.
    #: This constant has a value of "TWENTY_FOUR_SSDS"
    SSD_CONFIGURATION_REQUESTED_TWENTY_FOUR_SSDS = "TWENTY_FOUR_SSDS"

    def __init__(self, **kwargs):
        """
        Initializes a new InfrastructureSummary object with values from keyword arguments.
        The following keyword arguments are supported (corresponding to the getters/setters of this class):

        :param id:
            The value to assign to the id property of this InfrastructureSummary.
        :type id: str

        :param description:
            The value to assign to the description property of this InfrastructureSummary.
        :type description: str

        :param compartment_id:
            The value to assign to the compartment_id property of this InfrastructureSummary.
        :type compartment_id: str

        :param display_name:
            The value to assign to the display_name property of this InfrastructureSummary.
        :type display_name: str

        :param system_model:
            The value to assign to the system_model property of this InfrastructureSummary.
            Allowed values for this property are: "X11_HA_768", "X10_HA_512", "X8_HA_384", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type system_model: str

        :param version:
            The value to assign to the version property of this InfrastructureSummary.
        :type version: str

        :param shape:
            The value to assign to the shape property of this InfrastructureSummary.
            Allowed values for this property are: "SIX_SSDS", "TWELVE_SSDS", "EIGHTEEN_SSDS", "TWENTY_FOUR_SSDS", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type shape: str

        :param cloud_control_plane_server1:
            The value to assign to the cloud_control_plane_server1 property of this InfrastructureSummary.
        :type cloud_control_plane_server1: str

        :param cloud_control_plane_server2:
            The value to assign to the cloud_control_plane_server2 property of this InfrastructureSummary.
        :type cloud_control_plane_server2: str

        :param netmask:
            The value to assign to the netmask property of this InfrastructureSummary.
        :type netmask: str

        :param gateway:
            The value to assign to the gateway property of this InfrastructureSummary.
        :type gateway: str

        :param admin_networkcidr:
            The value to assign to the admin_networkcidr property of this InfrastructureSummary.
        :type admin_networkcidr: str

        :param contacts:
            The value to assign to the contacts property of this InfrastructureSummary.
        :type contacts: list[oci.datacc.models.InfrastructureContact]

        :param dns_servers:
            The value to assign to the dns_servers property of this InfrastructureSummary.
        :type dns_servers: list[str]

        :param ntp_servers:
            The value to assign to the ntp_servers property of this InfrastructureSummary.
        :type ntp_servers: list[str]

        :param client_network_bonding_mode:
            The value to assign to the client_network_bonding_mode property of this InfrastructureSummary.
            Allowed values for this property are: "ACTIVE_BACKUP", "LACP", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type client_network_bonding_mode: str

        :param backup_network_bonding_mode:
            The value to assign to the backup_network_bonding_mode property of this InfrastructureSummary.
            Allowed values for this property are: "ACTIVE_BACKUP", "LACP", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type backup_network_bonding_mode: str

        :param cps_network_bonding_mode:
            The value to assign to the cps_network_bonding_mode property of this InfrastructureSummary.
            Allowed values for this property are: "ACTIVE_BACKUP", "LACP", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type cps_network_bonding_mode: str

        :param client_network_bonding_interface:
            The value to assign to the client_network_bonding_interface property of this InfrastructureSummary.
            Allowed values for this property are: "BTBOND1", "BTBOND2", "BTBOND3", "BTBOND4", "BTBOND5", "BTBOND6", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type client_network_bonding_interface: str

        :param backup_network_bonding_interface:
            The value to assign to the backup_network_bonding_interface property of this InfrastructureSummary.
            Allowed values for this property are: "BTBOND1", "BTBOND2", "BTBOND3", "BTBOND4", "BTBOND5", "BTBOND6", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type backup_network_bonding_interface: str

        :param cps_network_bonding_interface:
            The value to assign to the cps_network_bonding_interface property of this InfrastructureSummary.
            Allowed values for this property are: "BTBOND1", "BTBOND2", "BTBOND3", "BTBOND4", "BTBOND5", "BTBOND6", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type cps_network_bonding_interface: str

        :param acfs_file_system_storage_in_gbs:
            The value to assign to the acfs_file_system_storage_in_gbs property of this InfrastructureSummary.
        :type acfs_file_system_storage_in_gbs: float

        :param acfs_file_system_used_storage_in_gbs:
            The value to assign to the acfs_file_system_used_storage_in_gbs property of this InfrastructureSummary.
        :type acfs_file_system_used_storage_in_gbs: float

        :param corporate_proxy:
            The value to assign to the corporate_proxy property of this InfrastructureSummary.
        :type corporate_proxy: str

        :param freeform_tags:
            The value to assign to the freeform_tags property of this InfrastructureSummary.
        :type freeform_tags: dict(str, str)

        :param defined_tags:
            The value to assign to the defined_tags property of this InfrastructureSummary.
        :type defined_tags: dict(str, dict(str, object))

        :param system_tags:
            The value to assign to the system_tags property of this InfrastructureSummary.
        :type system_tags: dict(str, dict(str, object))

        :param maintenance_window:
            The value to assign to the maintenance_window property of this InfrastructureSummary.
        :type maintenance_window: oci.datacc.models.MaintenanceWindow

        :param time_created:
            The value to assign to the time_created property of this InfrastructureSummary.
        :type time_created: datetime

        :param time_updated:
            The value to assign to the time_updated property of this InfrastructureSummary.
        :type time_updated: datetime

        :param time_last_state_updated:
            The value to assign to the time_last_state_updated property of this InfrastructureSummary.
        :type time_last_state_updated: datetime

        :param time_activated:
            The value to assign to the time_activated property of this InfrastructureSummary.
        :type time_activated: datetime

        :param time_validated:
            The value to assign to the time_validated property of this InfrastructureSummary.
        :type time_validated: datetime

        :param lifecycle_state:
            The value to assign to the lifecycle_state property of this InfrastructureSummary.
            Allowed values for this property are: "CREATING", "REQUIRES_VALIDATION", "VALIDATING", "VALIDATION_FAILED", "REQUIRES_ACTIVATION", "ACTIVATING", "ACTIVE", "ACTIVATION_FAILED", "FAILED", "UPDATING", "DELETING", "DELETED", "DISCONNECTED", "MAINTENANCE_IN_PROGRESS", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type lifecycle_state: str

        :param lifecycle_state_details:
            The value to assign to the lifecycle_state_details property of this InfrastructureSummary.
        :type lifecycle_state_details: str

        :param compute_capacity:
            The value to assign to the compute_capacity property of this InfrastructureSummary.
        :type compute_capacity: oci.datacc.models.ComputeCapacityDetails

        :param storage_capacity:
            The value to assign to the storage_capacity property of this InfrastructureSummary.
        :type storage_capacity: list[oci.datacc.models.StorageCapacityDetails]

        :param system_storage_capacity:
            The value to assign to the system_storage_capacity property of this InfrastructureSummary.
        :type system_storage_capacity: oci.datacc.models.SystemStorageCapacityDetails

        :param subscription_plan_number:
            The value to assign to the subscription_plan_number property of this InfrastructureSummary.
        :type subscription_plan_number: str

        :param ssd_configuration_requested:
            The value to assign to the ssd_configuration_requested property of this InfrastructureSummary.
            Allowed values for this property are: "SIX_SSDS", "TWELVE_SSDS", "EIGHTEEN_SSDS", "TWENTY_FOUR_SSDS", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type ssd_configuration_requested: str

        """
        self.swagger_types = {
            'id': 'str',
            'description': 'str',
            'compartment_id': 'str',
            'display_name': 'str',
            'system_model': 'str',
            'version': 'str',
            'shape': 'str',
            'cloud_control_plane_server1': 'str',
            'cloud_control_plane_server2': 'str',
            'netmask': 'str',
            'gateway': 'str',
            'admin_networkcidr': 'str',
            'contacts': 'list[InfrastructureContact]',
            'dns_servers': 'list[str]',
            'ntp_servers': 'list[str]',
            'client_network_bonding_mode': 'str',
            'backup_network_bonding_mode': 'str',
            'cps_network_bonding_mode': 'str',
            'client_network_bonding_interface': 'str',
            'backup_network_bonding_interface': 'str',
            'cps_network_bonding_interface': 'str',
            'acfs_file_system_storage_in_gbs': 'float',
            'acfs_file_system_used_storage_in_gbs': 'float',
            'corporate_proxy': 'str',
            'freeform_tags': 'dict(str, str)',
            'defined_tags': 'dict(str, dict(str, object))',
            'system_tags': 'dict(str, dict(str, object))',
            'maintenance_window': 'MaintenanceWindow',
            'time_created': 'datetime',
            'time_updated': 'datetime',
            'time_last_state_updated': 'datetime',
            'time_activated': 'datetime',
            'time_validated': 'datetime',
            'lifecycle_state': 'str',
            'lifecycle_state_details': 'str',
            'compute_capacity': 'ComputeCapacityDetails',
            'storage_capacity': 'list[StorageCapacityDetails]',
            'system_storage_capacity': 'SystemStorageCapacityDetails',
            'subscription_plan_number': 'str',
            'ssd_configuration_requested': 'str'
        }
        self.attribute_map = {
            'id': 'id',
            'description': 'description',
            'compartment_id': 'compartmentId',
            'display_name': 'displayName',
            'system_model': 'systemModel',
            'version': 'version',
            'shape': 'shape',
            'cloud_control_plane_server1': 'cloudControlPlaneServer1',
            'cloud_control_plane_server2': 'cloudControlPlaneServer2',
            'netmask': 'netmask',
            'gateway': 'gateway',
            'admin_networkcidr': 'adminNetworkcidr',
            'contacts': 'contacts',
            'dns_servers': 'dnsServers',
            'ntp_servers': 'ntpServers',
            'client_network_bonding_mode': 'clientNetworkBondingMode',
            'backup_network_bonding_mode': 'backupNetworkBondingMode',
            'cps_network_bonding_mode': 'cpsNetworkBondingMode',
            'client_network_bonding_interface': 'clientNetworkBondingInterface',
            'backup_network_bonding_interface': 'backupNetworkBondingInterface',
            'cps_network_bonding_interface': 'cpsNetworkBondingInterface',
            'acfs_file_system_storage_in_gbs': 'acfsFileSystemStorageInGbs',
            'acfs_file_system_used_storage_in_gbs': 'acfsFileSystemUsedStorageInGbs',
            'corporate_proxy': 'corporateProxy',
            'freeform_tags': 'freeformTags',
            'defined_tags': 'definedTags',
            'system_tags': 'systemTags',
            'maintenance_window': 'maintenanceWindow',
            'time_created': 'timeCreated',
            'time_updated': 'timeUpdated',
            'time_last_state_updated': 'timeLastStateUpdated',
            'time_activated': 'timeActivated',
            'time_validated': 'timeValidated',
            'lifecycle_state': 'lifecycleState',
            'lifecycle_state_details': 'lifecycleStateDetails',
            'compute_capacity': 'computeCapacity',
            'storage_capacity': 'storageCapacity',
            'system_storage_capacity': 'systemStorageCapacity',
            'subscription_plan_number': 'subscriptionPlanNumber',
            'ssd_configuration_requested': 'ssdConfigurationRequested'
        }
        self._id = None
        self._description = None
        self._compartment_id = None
        self._display_name = None
        self._system_model = None
        self._version = None
        self._shape = None
        self._cloud_control_plane_server1 = None
        self._cloud_control_plane_server2 = None
        self._netmask = None
        self._gateway = None
        self._admin_networkcidr = None
        self._contacts = None
        self._dns_servers = None
        self._ntp_servers = None
        self._client_network_bonding_mode = None
        self._backup_network_bonding_mode = None
        self._cps_network_bonding_mode = None
        self._client_network_bonding_interface = None
        self._backup_network_bonding_interface = None
        self._cps_network_bonding_interface = None
        self._acfs_file_system_storage_in_gbs = None
        self._acfs_file_system_used_storage_in_gbs = None
        self._corporate_proxy = None
        self._freeform_tags = None
        self._defined_tags = None
        self._system_tags = None
        self._maintenance_window = None
        self._time_created = None
        self._time_updated = None
        self._time_last_state_updated = None
        self._time_activated = None
        self._time_validated = None
        self._lifecycle_state = None
        self._lifecycle_state_details = None
        self._compute_capacity = None
        self._storage_capacity = None
        self._system_storage_capacity = None
        self._subscription_plan_number = None
        self._ssd_configuration_requested = None

    @property
    def id(self):
        """
        **[Required]** Gets the id of this InfrastructureSummary.
        The `OCID`__ of the Database Infrastructure.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :return: The id of this InfrastructureSummary.
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id):
        """
        Sets the id of this InfrastructureSummary.
        The `OCID`__ of the Database Infrastructure.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :param id: The id of this InfrastructureSummary.
        :type: str
        """
        self._id = id

    @property
    def description(self):
        """
        Gets the description of this InfrastructureSummary.
        Database Infrastructure description.


        :return: The description of this InfrastructureSummary.
        :rtype: str
        """
        return self._description

    @description.setter
    def description(self, description):
        """
        Sets the description of this InfrastructureSummary.
        Database Infrastructure description.


        :param description: The description of this InfrastructureSummary.
        :type: str
        """
        self._description = description

    @property
    def compartment_id(self):
        """
        **[Required]** Gets the compartment_id of this InfrastructureSummary.
        The `OCID`__ of the compartment.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :return: The compartment_id of this InfrastructureSummary.
        :rtype: str
        """
        return self._compartment_id

    @compartment_id.setter
    def compartment_id(self, compartment_id):
        """
        Sets the compartment_id of this InfrastructureSummary.
        The `OCID`__ of the compartment.

        __ https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm


        :param compartment_id: The compartment_id of this InfrastructureSummary.
        :type: str
        """
        self._compartment_id = compartment_id

    @property
    def display_name(self):
        """
        **[Required]** Gets the display_name of this InfrastructureSummary.
        The user-friendly name for the Database Infrastructure. The name does not need to be unique.


        :return: The display_name of this InfrastructureSummary.
        :rtype: str
        """
        return self._display_name

    @display_name.setter
    def display_name(self, display_name):
        """
        Sets the display_name of this InfrastructureSummary.
        The user-friendly name for the Database Infrastructure. The name does not need to be unique.


        :param display_name: The display_name of this InfrastructureSummary.
        :type: str
        """
        self._display_name = display_name

    @property
    def system_model(self):
        """
        **[Required]** Gets the system_model of this InfrastructureSummary.
        Database Infrastructure System Model specification. The system model determines the model of the Database Infrastructure hardware to be used.

        Allowed values for this property are: "X11_HA_768", "X10_HA_512", "X8_HA_384", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The system_model of this InfrastructureSummary.
        :rtype: str
        """
        return self._system_model

    @system_model.setter
    def system_model(self, system_model):
        """
        Sets the system_model of this InfrastructureSummary.
        Database Infrastructure System Model specification. The system model determines the model of the Database Infrastructure hardware to be used.


        :param system_model: The system_model of this InfrastructureSummary.
        :type: str
        """
        allowed_values = ["X11_HA_768", "X10_HA_512", "X8_HA_384"]
        if not value_allowed_none_or_none_sentinel(system_model, allowed_values):
            system_model = 'UNKNOWN_ENUM_VALUE'
        self._system_model = system_model

    @property
    def version(self):
        """
        Gets the version of this InfrastructureSummary.
        The version of the system software on the Database Infrastructure.


        :return: The version of this InfrastructureSummary.
        :rtype: str
        """
        return self._version

    @version.setter
    def version(self, version):
        """
        Sets the version of this InfrastructureSummary.
        The version of the system software on the Database Infrastructure.


        :param version: The version of this InfrastructureSummary.
        :type: str
        """
        self._version = version

    @property
    def shape(self):
        """
        **[Required]** Gets the shape of this InfrastructureSummary.
        The shape of the Database Infrastructure. The shape determines the amount of CPU, storage, and memory resources allocated to the instance.

        Allowed values for this property are: "SIX_SSDS", "TWELVE_SSDS", "EIGHTEEN_SSDS", "TWENTY_FOUR_SSDS", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The shape of this InfrastructureSummary.
        :rtype: str
        """
        return self._shape

    @shape.setter
    def shape(self, shape):
        """
        Sets the shape of this InfrastructureSummary.
        The shape of the Database Infrastructure. The shape determines the amount of CPU, storage, and memory resources allocated to the instance.


        :param shape: The shape of this InfrastructureSummary.
        :type: str
        """
        allowed_values = ["SIX_SSDS", "TWELVE_SSDS", "EIGHTEEN_SSDS", "TWENTY_FOUR_SSDS"]
        if not value_allowed_none_or_none_sentinel(shape, allowed_values):
            shape = 'UNKNOWN_ENUM_VALUE'
        self._shape = shape

    @property
    def cloud_control_plane_server1(self):
        """
        **[Required]** Gets the cloud_control_plane_server1 of this InfrastructureSummary.
        The IP address for the first control plane server.


        :return: The cloud_control_plane_server1 of this InfrastructureSummary.
        :rtype: str
        """
        return self._cloud_control_plane_server1

    @cloud_control_plane_server1.setter
    def cloud_control_plane_server1(self, cloud_control_plane_server1):
        """
        Sets the cloud_control_plane_server1 of this InfrastructureSummary.
        The IP address for the first control plane server.


        :param cloud_control_plane_server1: The cloud_control_plane_server1 of this InfrastructureSummary.
        :type: str
        """
        self._cloud_control_plane_server1 = cloud_control_plane_server1

    @property
    def cloud_control_plane_server2(self):
        """
        **[Required]** Gets the cloud_control_plane_server2 of this InfrastructureSummary.
        The IP address for the second control plane server.


        :return: The cloud_control_plane_server2 of this InfrastructureSummary.
        :rtype: str
        """
        return self._cloud_control_plane_server2

    @cloud_control_plane_server2.setter
    def cloud_control_plane_server2(self, cloud_control_plane_server2):
        """
        Sets the cloud_control_plane_server2 of this InfrastructureSummary.
        The IP address for the second control plane server.


        :param cloud_control_plane_server2: The cloud_control_plane_server2 of this InfrastructureSummary.
        :type: str
        """
        self._cloud_control_plane_server2 = cloud_control_plane_server2

    @property
    def netmask(self):
        """
        **[Required]** Gets the netmask of this InfrastructureSummary.
        The netmask for the control plane network.


        :return: The netmask of this InfrastructureSummary.
        :rtype: str
        """
        return self._netmask

    @netmask.setter
    def netmask(self, netmask):
        """
        Sets the netmask of this InfrastructureSummary.
        The netmask for the control plane network.


        :param netmask: The netmask of this InfrastructureSummary.
        :type: str
        """
        self._netmask = netmask

    @property
    def gateway(self):
        """
        **[Required]** Gets the gateway of this InfrastructureSummary.
        The gateway for the control plane network.


        :return: The gateway of this InfrastructureSummary.
        :rtype: str
        """
        return self._gateway

    @gateway.setter
    def gateway(self, gateway):
        """
        Sets the gateway of this InfrastructureSummary.
        The gateway for the control plane network.


        :param gateway: The gateway of this InfrastructureSummary.
        :type: str
        """
        self._gateway = gateway

    @property
    def admin_networkcidr(self):
        """
        **[Required]** Gets the admin_networkcidr of this InfrastructureSummary.
        The CIDR block for the system network. The system network is a private network in Database Infrastructure and is not connected to your corporate network. The system network is used for storage (ASM) traffic, high-performance interconnect traffic and administration of infrastructure components.


        :return: The admin_networkcidr of this InfrastructureSummary.
        :rtype: str
        """
        return self._admin_networkcidr

    @admin_networkcidr.setter
    def admin_networkcidr(self, admin_networkcidr):
        """
        Sets the admin_networkcidr of this InfrastructureSummary.
        The CIDR block for the system network. The system network is a private network in Database Infrastructure and is not connected to your corporate network. The system network is used for storage (ASM) traffic, high-performance interconnect traffic and administration of infrastructure components.


        :param admin_networkcidr: The admin_networkcidr of this InfrastructureSummary.
        :type: str
        """
        self._admin_networkcidr = admin_networkcidr

    @property
    def contacts(self):
        """
        Gets the contacts of this InfrastructureSummary.
        The list of contacts for the Database Infrastructure.


        :return: The contacts of this InfrastructureSummary.
        :rtype: list[oci.datacc.models.InfrastructureContact]
        """
        return self._contacts

    @contacts.setter
    def contacts(self, contacts):
        """
        Sets the contacts of this InfrastructureSummary.
        The list of contacts for the Database Infrastructure.


        :param contacts: The contacts of this InfrastructureSummary.
        :type: list[oci.datacc.models.InfrastructureContact]
        """
        self._contacts = contacts

    @property
    def dns_servers(self):
        """
        **[Required]** Gets the dns_servers of this InfrastructureSummary.
        The list of DNS server IP addresses. Maximum of 3 allowed.


        :return: The dns_servers of this InfrastructureSummary.
        :rtype: list[str]
        """
        return self._dns_servers

    @dns_servers.setter
    def dns_servers(self, dns_servers):
        """
        Sets the dns_servers of this InfrastructureSummary.
        The list of DNS server IP addresses. Maximum of 3 allowed.


        :param dns_servers: The dns_servers of this InfrastructureSummary.
        :type: list[str]
        """
        self._dns_servers = dns_servers

    @property
    def ntp_servers(self):
        """
        **[Required]** Gets the ntp_servers of this InfrastructureSummary.
        The list of NTP server IP addresses. Maximum of 3 allowed.


        :return: The ntp_servers of this InfrastructureSummary.
        :rtype: list[str]
        """
        return self._ntp_servers

    @ntp_servers.setter
    def ntp_servers(self, ntp_servers):
        """
        Sets the ntp_servers of this InfrastructureSummary.
        The list of NTP server IP addresses. Maximum of 3 allowed.


        :param ntp_servers: The ntp_servers of this InfrastructureSummary.
        :type: list[str]
        """
        self._ntp_servers = ntp_servers

    @property
    def client_network_bonding_mode(self):
        """
        Gets the client_network_bonding_mode of this InfrastructureSummary.
        The network bonding mode for Client networks for the Database Infrastructure.

        Allowed values for this property are: "ACTIVE_BACKUP", "LACP", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The client_network_bonding_mode of this InfrastructureSummary.
        :rtype: str
        """
        return self._client_network_bonding_mode

    @client_network_bonding_mode.setter
    def client_network_bonding_mode(self, client_network_bonding_mode):
        """
        Sets the client_network_bonding_mode of this InfrastructureSummary.
        The network bonding mode for Client networks for the Database Infrastructure.


        :param client_network_bonding_mode: The client_network_bonding_mode of this InfrastructureSummary.
        :type: str
        """
        allowed_values = ["ACTIVE_BACKUP", "LACP"]
        if not value_allowed_none_or_none_sentinel(client_network_bonding_mode, allowed_values):
            client_network_bonding_mode = 'UNKNOWN_ENUM_VALUE'
        self._client_network_bonding_mode = client_network_bonding_mode

    @property
    def backup_network_bonding_mode(self):
        """
        Gets the backup_network_bonding_mode of this InfrastructureSummary.
        The network bonding mode for Backup networks for the Database Infrastructure.

        Allowed values for this property are: "ACTIVE_BACKUP", "LACP", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The backup_network_bonding_mode of this InfrastructureSummary.
        :rtype: str
        """
        return self._backup_network_bonding_mode

    @backup_network_bonding_mode.setter
    def backup_network_bonding_mode(self, backup_network_bonding_mode):
        """
        Sets the backup_network_bonding_mode of this InfrastructureSummary.
        The network bonding mode for Backup networks for the Database Infrastructure.


        :param backup_network_bonding_mode: The backup_network_bonding_mode of this InfrastructureSummary.
        :type: str
        """
        allowed_values = ["ACTIVE_BACKUP", "LACP"]
        if not value_allowed_none_or_none_sentinel(backup_network_bonding_mode, allowed_values):
            backup_network_bonding_mode = 'UNKNOWN_ENUM_VALUE'
        self._backup_network_bonding_mode = backup_network_bonding_mode

    @property
    def cps_network_bonding_mode(self):
        """
        Gets the cps_network_bonding_mode of this InfrastructureSummary.
        The network bonding mode for CPS networks for the Database Infrastructure.

        Allowed values for this property are: "ACTIVE_BACKUP", "LACP", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The cps_network_bonding_mode of this InfrastructureSummary.
        :rtype: str
        """
        return self._cps_network_bonding_mode

    @cps_network_bonding_mode.setter
    def cps_network_bonding_mode(self, cps_network_bonding_mode):
        """
        Sets the cps_network_bonding_mode of this InfrastructureSummary.
        The network bonding mode for CPS networks for the Database Infrastructure.


        :param cps_network_bonding_mode: The cps_network_bonding_mode of this InfrastructureSummary.
        :type: str
        """
        allowed_values = ["ACTIVE_BACKUP", "LACP"]
        if not value_allowed_none_or_none_sentinel(cps_network_bonding_mode, allowed_values):
            cps_network_bonding_mode = 'UNKNOWN_ENUM_VALUE'
        self._cps_network_bonding_mode = cps_network_bonding_mode

    @property
    def client_network_bonding_interface(self):
        """
        Gets the client_network_bonding_interface of this InfrastructureSummary.
        The network bonding interface for client network for the Database Infrastructure.

        Allowed values for this property are: "BTBOND1", "BTBOND2", "BTBOND3", "BTBOND4", "BTBOND5", "BTBOND6", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The client_network_bonding_interface of this InfrastructureSummary.
        :rtype: str
        """
        return self._client_network_bonding_interface

    @client_network_bonding_interface.setter
    def client_network_bonding_interface(self, client_network_bonding_interface):
        """
        Sets the client_network_bonding_interface of this InfrastructureSummary.
        The network bonding interface for client network for the Database Infrastructure.


        :param client_network_bonding_interface: The client_network_bonding_interface of this InfrastructureSummary.
        :type: str
        """
        allowed_values = ["BTBOND1", "BTBOND2", "BTBOND3", "BTBOND4", "BTBOND5", "BTBOND6"]
        if not value_allowed_none_or_none_sentinel(client_network_bonding_interface, allowed_values):
            client_network_bonding_interface = 'UNKNOWN_ENUM_VALUE'
        self._client_network_bonding_interface = client_network_bonding_interface

    @property
    def backup_network_bonding_interface(self):
        """
        Gets the backup_network_bonding_interface of this InfrastructureSummary.
        The network bonding interface for backup network for the Database Infrastructure.

        Allowed values for this property are: "BTBOND1", "BTBOND2", "BTBOND3", "BTBOND4", "BTBOND5", "BTBOND6", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The backup_network_bonding_interface of this InfrastructureSummary.
        :rtype: str
        """
        return self._backup_network_bonding_interface

    @backup_network_bonding_interface.setter
    def backup_network_bonding_interface(self, backup_network_bonding_interface):
        """
        Sets the backup_network_bonding_interface of this InfrastructureSummary.
        The network bonding interface for backup network for the Database Infrastructure.


        :param backup_network_bonding_interface: The backup_network_bonding_interface of this InfrastructureSummary.
        :type: str
        """
        allowed_values = ["BTBOND1", "BTBOND2", "BTBOND3", "BTBOND4", "BTBOND5", "BTBOND6"]
        if not value_allowed_none_or_none_sentinel(backup_network_bonding_interface, allowed_values):
            backup_network_bonding_interface = 'UNKNOWN_ENUM_VALUE'
        self._backup_network_bonding_interface = backup_network_bonding_interface

    @property
    def cps_network_bonding_interface(self):
        """
        Gets the cps_network_bonding_interface of this InfrastructureSummary.
        The network bonding interface for CPS network for the Database Infrastructure.

        Allowed values for this property are: "BTBOND1", "BTBOND2", "BTBOND3", "BTBOND4", "BTBOND5", "BTBOND6", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The cps_network_bonding_interface of this InfrastructureSummary.
        :rtype: str
        """
        return self._cps_network_bonding_interface

    @cps_network_bonding_interface.setter
    def cps_network_bonding_interface(self, cps_network_bonding_interface):
        """
        Sets the cps_network_bonding_interface of this InfrastructureSummary.
        The network bonding interface for CPS network for the Database Infrastructure.


        :param cps_network_bonding_interface: The cps_network_bonding_interface of this InfrastructureSummary.
        :type: str
        """
        allowed_values = ["BTBOND1", "BTBOND2", "BTBOND3", "BTBOND4", "BTBOND5", "BTBOND6"]
        if not value_allowed_none_or_none_sentinel(cps_network_bonding_interface, allowed_values):
            cps_network_bonding_interface = 'UNKNOWN_ENUM_VALUE'
        self._cps_network_bonding_interface = cps_network_bonding_interface

    @property
    def acfs_file_system_storage_in_gbs(self):
        """
        Gets the acfs_file_system_storage_in_gbs of this InfrastructureSummary.
        The amount of storage (in GB) in the DATA disk group that is reserved for creating local storage for VM Clusters and application VMs.


        :return: The acfs_file_system_storage_in_gbs of this InfrastructureSummary.
        :rtype: float
        """
        return self._acfs_file_system_storage_in_gbs

    @acfs_file_system_storage_in_gbs.setter
    def acfs_file_system_storage_in_gbs(self, acfs_file_system_storage_in_gbs):
        """
        Sets the acfs_file_system_storage_in_gbs of this InfrastructureSummary.
        The amount of storage (in GB) in the DATA disk group that is reserved for creating local storage for VM Clusters and application VMs.


        :param acfs_file_system_storage_in_gbs: The acfs_file_system_storage_in_gbs of this InfrastructureSummary.
        :type: float
        """
        self._acfs_file_system_storage_in_gbs = acfs_file_system_storage_in_gbs

    @property
    def acfs_file_system_used_storage_in_gbs(self):
        """
        Gets the acfs_file_system_used_storage_in_gbs of this InfrastructureSummary.
        The amount of storage (in GB) in the DATA disk group that is currently utilized for creating local storage for VM Clusters and application VMs.
        This attribute is deprecated and will be removed in a subsequent release. Please read from systemStorageCapacity instead.


        :return: The acfs_file_system_used_storage_in_gbs of this InfrastructureSummary.
        :rtype: float
        """
        return self._acfs_file_system_used_storage_in_gbs

    @acfs_file_system_used_storage_in_gbs.setter
    def acfs_file_system_used_storage_in_gbs(self, acfs_file_system_used_storage_in_gbs):
        """
        Sets the acfs_file_system_used_storage_in_gbs of this InfrastructureSummary.
        The amount of storage (in GB) in the DATA disk group that is currently utilized for creating local storage for VM Clusters and application VMs.
        This attribute is deprecated and will be removed in a subsequent release. Please read from systemStorageCapacity instead.


        :param acfs_file_system_used_storage_in_gbs: The acfs_file_system_used_storage_in_gbs of this InfrastructureSummary.
        :type: float
        """
        self._acfs_file_system_used_storage_in_gbs = acfs_file_system_used_storage_in_gbs

    @property
    def corporate_proxy(self):
        """
        Gets the corporate_proxy of this InfrastructureSummary.
        The corporate network proxy for access to the control plane network. Oracle recommends using an HTTPS proxy when possible
        for enhanced security.


        :return: The corporate_proxy of this InfrastructureSummary.
        :rtype: str
        """
        return self._corporate_proxy

    @corporate_proxy.setter
    def corporate_proxy(self, corporate_proxy):
        """
        Sets the corporate_proxy of this InfrastructureSummary.
        The corporate network proxy for access to the control plane network. Oracle recommends using an HTTPS proxy when possible
        for enhanced security.


        :param corporate_proxy: The corporate_proxy of this InfrastructureSummary.
        :type: str
        """
        self._corporate_proxy = corporate_proxy

    @property
    def freeform_tags(self):
        """
        Gets the freeform_tags of this InfrastructureSummary.
        Simple key-value pair that is applied without any predefined name, type or scope. This tag option exists for cross-compatibility only.
        Example: `{\"bar-key\": \"value\"}`


        :return: The freeform_tags of this InfrastructureSummary.
        :rtype: dict(str, str)
        """
        return self._freeform_tags

    @freeform_tags.setter
    def freeform_tags(self, freeform_tags):
        """
        Sets the freeform_tags of this InfrastructureSummary.
        Simple key-value pair that is applied without any predefined name, type or scope. This tag option exists for cross-compatibility only.
        Example: `{\"bar-key\": \"value\"}`


        :param freeform_tags: The freeform_tags of this InfrastructureSummary.
        :type: dict(str, str)
        """
        self._freeform_tags = freeform_tags

    @property
    def defined_tags(self):
        """
        Gets the defined_tags of this InfrastructureSummary.
        Defined tags for this resource. Each key is predefined and scoped to a namespace.
        Example: `{\"foo-namespace\": {\"bar-key\": \"value\"}}`


        :return: The defined_tags of this InfrastructureSummary.
        :rtype: dict(str, dict(str, object))
        """
        return self._defined_tags

    @defined_tags.setter
    def defined_tags(self, defined_tags):
        """
        Sets the defined_tags of this InfrastructureSummary.
        Defined tags for this resource. Each key is predefined and scoped to a namespace.
        Example: `{\"foo-namespace\": {\"bar-key\": \"value\"}}`


        :param defined_tags: The defined_tags of this InfrastructureSummary.
        :type: dict(str, dict(str, object))
        """
        self._defined_tags = defined_tags

    @property
    def system_tags(self):
        """
        Gets the system_tags of this InfrastructureSummary.
        Usage of system tag keys. These predefined keys are scoped to namespaces.
        Example: `{ \"orcl-cloud\": { \"free-tier-retained\": \"true\" } }`


        :return: The system_tags of this InfrastructureSummary.
        :rtype: dict(str, dict(str, object))
        """
        return self._system_tags

    @system_tags.setter
    def system_tags(self, system_tags):
        """
        Sets the system_tags of this InfrastructureSummary.
        Usage of system tag keys. These predefined keys are scoped to namespaces.
        Example: `{ \"orcl-cloud\": { \"free-tier-retained\": \"true\" } }`


        :param system_tags: The system_tags of this InfrastructureSummary.
        :type: dict(str, dict(str, object))
        """
        self._system_tags = system_tags

    @property
    def maintenance_window(self):
        """
        Gets the maintenance_window of this InfrastructureSummary.

        :return: The maintenance_window of this InfrastructureSummary.
        :rtype: oci.datacc.models.MaintenanceWindow
        """
        return self._maintenance_window

    @maintenance_window.setter
    def maintenance_window(self, maintenance_window):
        """
        Sets the maintenance_window of this InfrastructureSummary.

        :param maintenance_window: The maintenance_window of this InfrastructureSummary.
        :type: oci.datacc.models.MaintenanceWindow
        """
        self._maintenance_window = maintenance_window

    @property
    def time_created(self):
        """
        Gets the time_created of this InfrastructureSummary.
        The time that the Database Infrastructure cluster was created. An RFC3339 formatted datetime string.


        :return: The time_created of this InfrastructureSummary.
        :rtype: datetime
        """
        return self._time_created

    @time_created.setter
    def time_created(self, time_created):
        """
        Sets the time_created of this InfrastructureSummary.
        The time that the Database Infrastructure cluster was created. An RFC3339 formatted datetime string.


        :param time_created: The time_created of this InfrastructureSummary.
        :type: datetime
        """
        self._time_created = time_created

    @property
    def time_updated(self):
        """
        Gets the time_updated of this InfrastructureSummary.
        The time that the Database Infrastructure was last updated. An RFC3339 formatted datetime string.


        :return: The time_updated of this InfrastructureSummary.
        :rtype: datetime
        """
        return self._time_updated

    @time_updated.setter
    def time_updated(self, time_updated):
        """
        Sets the time_updated of this InfrastructureSummary.
        The time that the Database Infrastructure was last updated. An RFC3339 formatted datetime string.


        :param time_updated: The time_updated of this InfrastructureSummary.
        :type: datetime
        """
        self._time_updated = time_updated

    @property
    def time_last_state_updated(self):
        """
        Gets the time_last_state_updated of this InfrastructureSummary.
        The time, in RFC3339 format, when the lifecycle state was last updated.


        :return: The time_last_state_updated of this InfrastructureSummary.
        :rtype: datetime
        """
        return self._time_last_state_updated

    @time_last_state_updated.setter
    def time_last_state_updated(self, time_last_state_updated):
        """
        Sets the time_last_state_updated of this InfrastructureSummary.
        The time, in RFC3339 format, when the lifecycle state was last updated.


        :param time_last_state_updated: The time_last_state_updated of this InfrastructureSummary.
        :type: datetime
        """
        self._time_last_state_updated = time_last_state_updated

    @property
    def time_activated(self):
        """
        Gets the time_activated of this InfrastructureSummary.
        The time, in RFC3339 format, when the Database Infrastructure was activated.


        :return: The time_activated of this InfrastructureSummary.
        :rtype: datetime
        """
        return self._time_activated

    @time_activated.setter
    def time_activated(self, time_activated):
        """
        Sets the time_activated of this InfrastructureSummary.
        The time, in RFC3339 format, when the Database Infrastructure was activated.


        :param time_activated: The time_activated of this InfrastructureSummary.
        :type: datetime
        """
        self._time_activated = time_activated

    @property
    def time_validated(self):
        """
        Gets the time_validated of this InfrastructureSummary.
        The time, in RFC3339 format, when the Database Infrastructure network was validated.


        :return: The time_validated of this InfrastructureSummary.
        :rtype: datetime
        """
        return self._time_validated

    @time_validated.setter
    def time_validated(self, time_validated):
        """
        Sets the time_validated of this InfrastructureSummary.
        The time, in RFC3339 format, when the Database Infrastructure network was validated.


        :param time_validated: The time_validated of this InfrastructureSummary.
        :type: datetime
        """
        self._time_validated = time_validated

    @property
    def lifecycle_state(self):
        """
        Gets the lifecycle_state of this InfrastructureSummary.
        The current state of the Database Infrastructure.

        Allowed values for this property are: "CREATING", "REQUIRES_VALIDATION", "VALIDATING", "VALIDATION_FAILED", "REQUIRES_ACTIVATION", "ACTIVATING", "ACTIVE", "ACTIVATION_FAILED", "FAILED", "UPDATING", "DELETING", "DELETED", "DISCONNECTED", "MAINTENANCE_IN_PROGRESS", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The lifecycle_state of this InfrastructureSummary.
        :rtype: str
        """
        return self._lifecycle_state

    @lifecycle_state.setter
    def lifecycle_state(self, lifecycle_state):
        """
        Sets the lifecycle_state of this InfrastructureSummary.
        The current state of the Database Infrastructure.


        :param lifecycle_state: The lifecycle_state of this InfrastructureSummary.
        :type: str
        """
        allowed_values = ["CREATING", "REQUIRES_VALIDATION", "VALIDATING", "VALIDATION_FAILED", "REQUIRES_ACTIVATION", "ACTIVATING", "ACTIVE", "ACTIVATION_FAILED", "FAILED", "UPDATING", "DELETING", "DELETED", "DISCONNECTED", "MAINTENANCE_IN_PROGRESS"]
        if not value_allowed_none_or_none_sentinel(lifecycle_state, allowed_values):
            lifecycle_state = 'UNKNOWN_ENUM_VALUE'
        self._lifecycle_state = lifecycle_state

    @property
    def lifecycle_state_details(self):
        """
        Gets the lifecycle_state_details of this InfrastructureSummary.
        Lifecycle state details of the Database Infrastructure.


        :return: The lifecycle_state_details of this InfrastructureSummary.
        :rtype: str
        """
        return self._lifecycle_state_details

    @lifecycle_state_details.setter
    def lifecycle_state_details(self, lifecycle_state_details):
        """
        Sets the lifecycle_state_details of this InfrastructureSummary.
        Lifecycle state details of the Database Infrastructure.


        :param lifecycle_state_details: The lifecycle_state_details of this InfrastructureSummary.
        :type: str
        """
        self._lifecycle_state_details = lifecycle_state_details

    @property
    def compute_capacity(self):
        """
        Gets the compute_capacity of this InfrastructureSummary.

        :return: The compute_capacity of this InfrastructureSummary.
        :rtype: oci.datacc.models.ComputeCapacityDetails
        """
        return self._compute_capacity

    @compute_capacity.setter
    def compute_capacity(self, compute_capacity):
        """
        Sets the compute_capacity of this InfrastructureSummary.

        :param compute_capacity: The compute_capacity of this InfrastructureSummary.
        :type: oci.datacc.models.ComputeCapacityDetails
        """
        self._compute_capacity = compute_capacity

    @property
    def storage_capacity(self):
        """
        Gets the storage_capacity of this InfrastructureSummary.
        Capacity details of the Storage disk group.
        This attribute is deprecated and will be removed in a subsequent release. Please
        use systemStorageCapacity instead.


        :return: The storage_capacity of this InfrastructureSummary.
        :rtype: list[oci.datacc.models.StorageCapacityDetails]
        """
        return self._storage_capacity

    @storage_capacity.setter
    def storage_capacity(self, storage_capacity):
        """
        Sets the storage_capacity of this InfrastructureSummary.
        Capacity details of the Storage disk group.
        This attribute is deprecated and will be removed in a subsequent release. Please
        use systemStorageCapacity instead.


        :param storage_capacity: The storage_capacity of this InfrastructureSummary.
        :type: list[oci.datacc.models.StorageCapacityDetails]
        """
        self._storage_capacity = storage_capacity

    @property
    def system_storage_capacity(self):
        """
        Gets the system_storage_capacity of this InfrastructureSummary.

        :return: The system_storage_capacity of this InfrastructureSummary.
        :rtype: oci.datacc.models.SystemStorageCapacityDetails
        """
        return self._system_storage_capacity

    @system_storage_capacity.setter
    def system_storage_capacity(self, system_storage_capacity):
        """
        Sets the system_storage_capacity of this InfrastructureSummary.

        :param system_storage_capacity: The system_storage_capacity of this InfrastructureSummary.
        :type: oci.datacc.models.SystemStorageCapacityDetails
        """
        self._system_storage_capacity = system_storage_capacity

    @property
    def subscription_plan_number(self):
        """
        Gets the subscription_plan_number of this InfrastructureSummary.
        The unique identifier for the subscription plan number.


        :return: The subscription_plan_number of this InfrastructureSummary.
        :rtype: str
        """
        return self._subscription_plan_number

    @subscription_plan_number.setter
    def subscription_plan_number(self, subscription_plan_number):
        """
        Sets the subscription_plan_number of this InfrastructureSummary.
        The unique identifier for the subscription plan number.


        :param subscription_plan_number: The subscription_plan_number of this InfrastructureSummary.
        :type: str
        """
        self._subscription_plan_number = subscription_plan_number

    @property
    def ssd_configuration_requested(self):
        """
        Gets the ssd_configuration_requested of this InfrastructureSummary.
        SSD configuration requested for the infrastructure.

        Allowed values for this property are: "SIX_SSDS", "TWELVE_SSDS", "EIGHTEEN_SSDS", "TWENTY_FOUR_SSDS", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The ssd_configuration_requested of this InfrastructureSummary.
        :rtype: str
        """
        return self._ssd_configuration_requested

    @ssd_configuration_requested.setter
    def ssd_configuration_requested(self, ssd_configuration_requested):
        """
        Sets the ssd_configuration_requested of this InfrastructureSummary.
        SSD configuration requested for the infrastructure.


        :param ssd_configuration_requested: The ssd_configuration_requested of this InfrastructureSummary.
        :type: str
        """
        allowed_values = ["SIX_SSDS", "TWELVE_SSDS", "EIGHTEEN_SSDS", "TWENTY_FOUR_SSDS"]
        if not value_allowed_none_or_none_sentinel(ssd_configuration_requested, allowed_values):
            ssd_configuration_requested = 'UNKNOWN_ENUM_VALUE'
        self._ssd_configuration_requested = ssd_configuration_requested

    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
