{
  "description": "AtlasProject is the Schema for the atlasprojects API",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "AtlasProjectSpec defines the target state of Project in Atlas",
      "properties": {
        "alertConfigurationSyncEnabled": {
          "description": "AlertConfigurationSyncEnabled is a flag that enables/disables Alert Configurations sync for the current Project.\nIf true - project alert configurations will be synced according to AlertConfigurations.\nIf not - alert configurations will not be modified by the operator. They can be managed through the API, CLI, and UI.",
          "type": "boolean"
        },
        "alertConfigurations": {
          "description": "AlertConfiguration is a list of Alert Configurations configured for the current Project.\nIf you use this setting, you must also set spec.alertConfigurationSyncEnabled to true for Atlas Kubernetes\nOperator to modify project alert configurations.\nIf you omit or leave this setting empty, Atlas Kubernetes Operator doesn't alter the project's alert\nconfigurations. If creating a project, Atlas applies the default project alert configurations.",
          "items": {
            "properties": {
              "enabled": {
                "description": "If omitted, the configuration is disabled.",
                "type": "boolean"
              },
              "eventTypeName": {
                "description": "The type of event that will trigger an alert.",
                "type": "string"
              },
              "matchers": {
                "description": "You can filter using the matchers array only when the EventTypeName specifies an event for a host, replica set, or sharded cluster.",
                "items": {
                  "properties": {
                    "fieldName": {
                      "description": "Name of the field in the target object to match on.",
                      "type": "string"
                    },
                    "operator": {
                      "description": "The operator to test the field\u2019s value.",
                      "type": "string"
                    },
                    "value": {
                      "description": "Value to test with the specified operator.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "metricThreshold": {
                "description": "MetricThreshold  causes an alert to be triggered.",
                "properties": {
                  "metricName": {
                    "description": "Name of the metric to check.",
                    "type": "string"
                  },
                  "mode": {
                    "description": "This must be set to AVERAGE. Atlas computes the current metric value as an average.",
                    "type": "string"
                  },
                  "operator": {
                    "description": "Operator to apply when checking the current metric value against the threshold value.",
                    "type": "string"
                  },
                  "threshold": {
                    "description": "Threshold value outside which an alert will be triggered.",
                    "type": "string"
                  },
                  "units": {
                    "description": "The units for the threshold value.",
                    "type": "string"
                  }
                },
                "required": [
                  "threshold"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "notifications": {
                "description": "Notifications are sending when an alert condition is detected.",
                "items": {
                  "properties": {
                    "apiTokenRef": {
                      "description": "Secret containing a Slack API token or Bot token. Populated for the SLACK notifications type. If the token later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.",
                      "properties": {
                        "name": {
                          "description": "Name of the Kubernetes Resource",
                          "type": "string"
                        },
                        "namespace": {
                          "description": "Namespace of the Kubernetes Resource",
                          "type": "string"
                        }
                      },
                      "required": [
                        "name"
                      ],
                      "type": "object",
                      "additionalProperties": false
                    },
                    "channelName": {
                      "description": "Slack channel name. Populated for the SLACK notifications type.",
                      "type": "string"
                    },
                    "datadogAPIKeyRef": {
                      "description": "Secret containing a Datadog API Key. Found in the Datadog dashboard. Populated for the DATADOG notifications type.",
                      "properties": {
                        "name": {
                          "description": "Name of the Kubernetes Resource",
                          "type": "string"
                        },
                        "namespace": {
                          "description": "Namespace of the Kubernetes Resource",
                          "type": "string"
                        }
                      },
                      "required": [
                        "name"
                      ],
                      "type": "object",
                      "additionalProperties": false
                    },
                    "datadogRegion": {
                      "description": "Region that indicates which API URL to use.",
                      "type": "string"
                    },
                    "delayMin": {
                      "description": "Number of minutes to wait after an alert condition is detected before sending out the first notification.",
                      "type": "integer"
                    },
                    "emailAddress": {
                      "description": "Email address to which alert notifications are sent. Populated for the EMAIL notifications type.",
                      "type": "string"
                    },
                    "emailEnabled": {
                      "description": "Flag indicating if email notifications should be sent. Populated for ORG, GROUP, and USER notifications types.",
                      "type": "boolean"
                    },
                    "flowName": {
                      "description": "Flowdock flow name in lower-case letters.",
                      "type": "string"
                    },
                    "flowdockApiTokenRef": {
                      "description": "The Flowdock personal API token. Populated for the FLOWDOCK notifications type. If the token later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.",
                      "properties": {
                        "name": {
                          "description": "Name of the Kubernetes Resource",
                          "type": "string"
                        },
                        "namespace": {
                          "description": "Namespace of the Kubernetes Resource",
                          "type": "string"
                        }
                      },
                      "required": [
                        "name"
                      ],
                      "type": "object",
                      "additionalProperties": false
                    },
                    "intervalMin": {
                      "description": "Number of minutes to wait between successive notifications for unacknowledged alerts that are not resolved.",
                      "type": "integer"
                    },
                    "mobileNumber": {
                      "description": "Mobile number to which alert notifications are sent. Populated for the SMS notifications type.",
                      "type": "string"
                    },
                    "opsGenieApiKeyRef": {
                      "description": "OpsGenie API Key. Populated for the OPS_GENIE notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.",
                      "properties": {
                        "name": {
                          "description": "Name of the Kubernetes Resource",
                          "type": "string"
                        },
                        "namespace": {
                          "description": "Namespace of the Kubernetes Resource",
                          "type": "string"
                        }
                      },
                      "required": [
                        "name"
                      ],
                      "type": "object",
                      "additionalProperties": false
                    },
                    "opsGenieRegion": {
                      "description": "Region that indicates which API URL to use.",
                      "type": "string"
                    },
                    "orgName": {
                      "description": "Flowdock organization name in lower-case letters. This is the name that appears after www.flowdock.com/app/ in the URL string. Populated for the FLOWDOCK notifications type.",
                      "type": "string"
                    },
                    "roles": {
                      "description": "The following roles grant privileges within a project.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "serviceKeyRef": {
                      "description": "PagerDuty service key. Populated for the PAGER_DUTY notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.",
                      "properties": {
                        "name": {
                          "description": "Name of the Kubernetes Resource",
                          "type": "string"
                        },
                        "namespace": {
                          "description": "Namespace of the Kubernetes Resource",
                          "type": "string"
                        }
                      },
                      "required": [
                        "name"
                      ],
                      "type": "object",
                      "additionalProperties": false
                    },
                    "smsEnabled": {
                      "description": "Flag indicating if text message notifications should be sent. Populated for ORG, GROUP, and USER notifications types.",
                      "type": "boolean"
                    },
                    "teamId": {
                      "description": "Unique identifier of a team.",
                      "type": "string"
                    },
                    "teamName": {
                      "description": "Label for the team that receives this notification.",
                      "type": "string"
                    },
                    "typeName": {
                      "description": "Type of alert notification.",
                      "type": "string"
                    },
                    "username": {
                      "description": "Name of the Atlas user to which to send notifications. Only a user in the project that owns the alert configuration is allowed here. Populated for the USER notifications type.",
                      "type": "string"
                    },
                    "victorOpsSecretRef": {
                      "description": "Secret containing a VictorOps API key and Routing key. Populated for the VICTOR_OPS notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.",
                      "properties": {
                        "name": {
                          "description": "Name of the Kubernetes Resource",
                          "type": "string"
                        },
                        "namespace": {
                          "description": "Namespace of the Kubernetes Resource",
                          "type": "string"
                        }
                      },
                      "required": [
                        "name"
                      ],
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "severityOverride": {
                "description": "SeverityOverride optionally overrides the default severity level for an alert.",
                "enum": [
                  "INFO",
                  "WARNING",
                  "ERROR",
                  "CRITICAL"
                ],
                "type": "string"
              },
              "threshold": {
                "description": "Threshold  causes an alert to be triggered.",
                "properties": {
                  "operator": {
                    "description": "Operator to apply when checking the current metric value against the threshold value.\nIt accepts the following values: GREATER_THAN, LESS_THAN.",
                    "type": "string"
                  },
                  "threshold": {
                    "description": "Threshold value outside which an alert will be triggered.",
                    "type": "string"
                  },
                  "units": {
                    "description": "The units for the threshold value.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "auditing": {
          "description": "Auditing represents MongoDB Maintenance Windows.",
          "properties": {
            "auditAuthorizationSuccess": {
              "description": "Indicates whether the auditing system captures successful authentication attempts for audit filters using the \"atype\" : \"authCheck\" auditing event.\nFor more information, see auditAuthorizationSuccess.",
              "type": "boolean"
            },
            "auditFilter": {
              "description": "JSON-formatted audit filter used by the project.",
              "type": "string"
            },
            "enabled": {
              "description": "Denotes whether the project associated with the {GROUP-ID} has database auditing enabled.",
              "type": "boolean"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "backupCompliancePolicyRef": {
          "description": "BackupCompliancePolicyRef is a reference to the backup compliance custom resource.",
          "properties": {
            "name": {
              "description": "Name of the Kubernetes Resource",
              "type": "string"
            },
            "namespace": {
              "description": "Namespace of the Kubernetes Resource",
              "type": "string"
            }
          },
          "required": [
            "name"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "cloudProviderAccessRoles": {
          "description": "CloudProviderAccessRoles is a list of Cloud Provider Access Roles configured for the current Project.\nDeprecated: This configuration was deprecated in favor of CloudProviderIntegrations",
          "items": {
            "description": "CloudProviderAccessRole define an integration to a cloud provider\nDEPRECATED: This type is deprecated in favor of CloudProviderIntegration",
            "properties": {
              "iamAssumedRoleArn": {
                "description": "IamAssumedRoleArn is the ARN of the IAM role that is assumed by the Atlas cluster.",
                "type": "string"
              },
              "providerName": {
                "description": "ProviderName is the name of the cloud provider. Currently only AWS is supported.",
                "type": "string"
              }
            },
            "required": [
              "providerName"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "cloudProviderIntegrations": {
          "description": "CloudProviderIntegrations is a list of Cloud Provider Integration configured for the current Project.",
          "items": {
            "description": "CloudProviderIntegration define an integration to a cloud provider",
            "properties": {
              "iamAssumedRoleArn": {
                "description": "IamAssumedRoleArn is the ARN of the IAM role that is assumed by the Atlas cluster.",
                "type": "string"
              },
              "providerName": {
                "description": "ProviderName is the name of the cloud provider. Currently only AWS is supported.",
                "type": "string"
              }
            },
            "required": [
              "providerName"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "connectionSecretRef": {
          "description": "ConnectionSecret is the name of the Kubernetes Secret which contains the information about the way to connect to\nAtlas (organization ID, API keys). The default Operator connection configuration will be used if not provided.",
          "properties": {
            "name": {
              "description": "Name of the Kubernetes Resource",
              "type": "string"
            },
            "namespace": {
              "description": "Namespace of the Kubernetes Resource",
              "type": "string"
            }
          },
          "required": [
            "name"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "customRoles": {
          "description": "CustomRoles lets you create and change custom roles in your cluster.\nUse custom roles to specify custom sets of actions that the Atlas built-in roles can't describe.\nDeprecated: Migrate to the AtlasCustomRoles custom resource in accordance with the migration guide\nat https://www.mongodb.com/docs/atlas/operator/current/migrate-parameter-to-resource/#std-label-ak8so-migrate-ptr",
          "items": {
            "description": "CustomRole lets you create and change a custom role in your cluster.\nUse custom roles to specify custom sets of actions that the Atlas built-in roles can't describe.\nDeprecated: Migrate to the AtlasCustomRoles custom resource in accordance with the migration guide\nat https://www.mongodb.com/docs/atlas/operator/current/migrate-parameter-to-resource/#std-label-ak8so-migrate-ptr",
            "properties": {
              "actions": {
                "description": "List of the individual privilege actions that the role grants.",
                "items": {
                  "properties": {
                    "name": {
                      "description": "Human-readable label that identifies the privilege action.",
                      "type": "string"
                    },
                    "resources": {
                      "description": "List of resources on which you grant the action.",
                      "items": {
                        "properties": {
                          "cluster": {
                            "description": "Flag that indicates whether to grant the action on the cluster resource. If true, MongoDB Cloud ignores Database and Collection parameters.",
                            "type": "boolean"
                          },
                          "collection": {
                            "description": "Human-readable label that identifies the collection on which you grant the action to one MongoDB user.",
                            "type": "string"
                          },
                          "database": {
                            "description": "Human-readable label that identifies the database on which you grant the action to one MongoDB user.",
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "name",
                    "resources"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "inheritedRoles": {
                "description": "List of the built-in roles that this custom role inherits.",
                "items": {
                  "properties": {
                    "database": {
                      "description": "Human-readable label that identifies the database on which someone grants the action to one MongoDB user.",
                      "type": "string"
                    },
                    "name": {
                      "description": "Human-readable label that identifies the role inherited.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "database",
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "name": {
                "description": "Human-readable label that identifies the role. This name must be unique for this custom role in this project.",
                "type": "string"
              }
            },
            "required": [
              "name"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "encryptionAtRest": {
          "description": "EncryptionAtRest allows to set encryption for AWS, Azure and GCP providers.",
          "properties": {
            "awsKms": {
              "description": "AwsKms specifies AWS KMS configuration details and whether Encryption at Rest is enabled for an Atlas project.",
              "properties": {
                "enabled": {
                  "description": "Specifies whether Encryption at Rest is enabled for an Atlas project.\nTo disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details.",
                  "type": "boolean"
                },
                "region": {
                  "description": "The AWS region in which the AWS customer master key exists.",
                  "type": "string"
                },
                "secretRef": {
                  "description": "A reference to as Secret containing the AccessKeyID, SecretAccessKey, CustomerMasterKeyID and RoleID fields",
                  "properties": {
                    "name": {
                      "description": "Name of the Kubernetes Resource",
                      "type": "string"
                    },
                    "namespace": {
                      "description": "Namespace of the Kubernetes Resource",
                      "type": "string"
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "valid": {
                  "description": "Specifies whether the encryption key set for the provider is valid and may be used to encrypt and decrypt data.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "azureKeyVault": {
              "description": "AzureKeyVault specifies Azure Key Vault configuration details and whether Encryption at Rest is enabled for an Atlas project.",
              "properties": {
                "azureEnvironment": {
                  "description": "The Azure environment where the Azure account credentials reside. Valid values are the following: AZURE, AZURE_CHINA, AZURE_GERMANY",
                  "type": "string"
                },
                "clientID": {
                  "description": "The Client ID, also known as the application ID, for an Azure application associated with the Azure AD tenant.",
                  "type": "string"
                },
                "enabled": {
                  "description": "Specifies whether Encryption at Rest is enabled for an Atlas project.\nTo disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details.",
                  "type": "boolean"
                },
                "resourceGroupName": {
                  "description": "The name of the Azure Resource group that contains an Azure Key Vault.",
                  "type": "string"
                },
                "secretRef": {
                  "description": "A reference to as Secret containing the SubscriptionID, KeyVaultName, KeyIdentifier, Secret fields",
                  "properties": {
                    "name": {
                      "description": "Name of the Kubernetes Resource",
                      "type": "string"
                    },
                    "namespace": {
                      "description": "Namespace of the Kubernetes Resource",
                      "type": "string"
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "tenantID": {
                  "description": "The unique identifier for an Azure AD tenant within an Azure subscription.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "googleCloudKms": {
              "description": "GoogleCloudKms specifies GCP KMS configuration details and whether Encryption at Rest is enabled for an Atlas project.",
              "properties": {
                "enabled": {
                  "description": "Specifies whether Encryption at Rest is enabled for an Atlas project.\nTo disable Encryption at Rest, pass only this parameter with a value of false. When you disable Encryption at Rest, Atlas also removes the configuration details.",
                  "type": "boolean"
                },
                "secretRef": {
                  "description": "A reference to as Secret containing the ServiceAccountKey, KeyVersionResourceID fields",
                  "properties": {
                    "name": {
                      "description": "Name of the Kubernetes Resource",
                      "type": "string"
                    },
                    "namespace": {
                      "description": "Namespace of the Kubernetes Resource",
                      "type": "string"
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "integrations": {
          "description": "Integrations is a list of MongoDB Atlas integrations for the project.\nDeprecated: Migrate to the AtlasThirdPartyIntegration custom resource in accordance with the migration guide\nat https://www.mongodb.com/docs/atlas/operator/current/migrate-parameter-to-resource/#std-label-ak8so-migrate-ptr",
          "items": {
            "description": "Integration for the project between Atlas and a third party service.\nDeprecated: Migrate to the AtlasThirdPartyIntegration custom resource in accordance with the migration guide\nat https://www.mongodb.com/docs/atlas/operator/current/migrate-parameter-to-resource/#std-label-ak8so-migrate-ptr",
            "properties": {
              "accountId": {
                "description": "Unique 40-hexadecimal digit string that identifies your New Relic account.",
                "type": "string"
              },
              "apiKeyRef": {
                "description": "Reference to a Kubernetes Secret containing your API Key for Datadog, OpsGenie or Victor Ops.",
                "properties": {
                  "name": {
                    "description": "Name of the Kubernetes Resource",
                    "type": "string"
                  },
                  "namespace": {
                    "description": "Namespace of the Kubernetes Resource",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "apiTokenRef": {
                "description": "Reference to a Kubernetes Secret containing the Key that allows Atlas to access your Slack account.",
                "properties": {
                  "name": {
                    "description": "Name of the Kubernetes Resource",
                    "type": "string"
                  },
                  "namespace": {
                    "description": "Namespace of the Kubernetes Resource",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "channelName": {
                "description": "Name of the Slack channel to which Atlas sends alert notifications.",
                "type": "string"
              },
              "enabled": {
                "description": "Flag that indicates whether someone has activated the Prometheus integration.",
                "type": "boolean"
              },
              "flowName": {
                "description": "DEPRECATED: Flowdock flow name.\nThis field has been removed from Atlas, and has no effect.",
                "type": "string"
              },
              "licenseKeyRef": {
                "description": "Reference to a Kubernetes Secret containing your Unique 40-hexadecimal digit string that identifies your New Relic license.",
                "properties": {
                  "name": {
                    "description": "Name of the Kubernetes Resource",
                    "type": "string"
                  },
                  "namespace": {
                    "description": "Namespace of the Kubernetes Resource",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "microsoftTeamsWebhookUrl": {
                "description": "Endpoint web address of the Microsoft Teams webhook to which Atlas sends notifications.",
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "orgName": {
                "description": "DEPRECATED: Flowdock organization name.\nThis field has been removed from Atlas, and has no effect.",
                "type": "string"
              },
              "passwordRef": {
                "description": "Reference to a Kubernetes Secret containing the password to allow Atlas to access your Prometheus account.",
                "properties": {
                  "name": {
                    "description": "Name of the Kubernetes Resource",
                    "type": "string"
                  },
                  "namespace": {
                    "description": "Namespace of the Kubernetes Resource",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "readTokenRef": {
                "description": "Reference to a Kubernetes Secret containing the query key associated with your New Relic account.",
                "properties": {
                  "name": {
                    "description": "Name of the Kubernetes Resource",
                    "type": "string"
                  },
                  "namespace": {
                    "description": "Namespace of the Kubernetes Resource",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "region": {
                "description": "Region code indicating which regional API Atlas uses to access PagerDuty, Datadog, or OpsGenie.",
                "type": "string"
              },
              "routingKeyRef": {
                "description": "Reference to a Kubernetes Secret containing the Routing key associated with your Splunk On-Call account.\nUsed for Victor Ops.",
                "properties": {
                  "name": {
                    "description": "Name of the Kubernetes Resource",
                    "type": "string"
                  },
                  "namespace": {
                    "description": "Namespace of the Kubernetes Resource",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "scheme": {
                "type": "string"
              },
              "secretRef": {
                "description": "Reference to a Kubernetes Secret containing the secret for your Webhook.",
                "properties": {
                  "name": {
                    "description": "Name of the Kubernetes Resource",
                    "type": "string"
                  },
                  "namespace": {
                    "description": "Namespace of the Kubernetes Resource",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "serviceDiscovery": {
                "description": "Desired method to discover the Prometheus service.",
                "type": "string"
              },
              "serviceKeyRef": {
                "description": "Reference to a Kubernetes Secret containing the service key associated with your PagerDuty account.",
                "properties": {
                  "name": {
                    "description": "Name of the Kubernetes Resource",
                    "type": "string"
                  },
                  "namespace": {
                    "description": "Namespace of the Kubernetes Resource",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "teamName": {
                "description": "Human-readable label that identifies your Slack team.",
                "type": "string"
              },
              "type": {
                "description": "Third Party Integration type such as Slack, New Relic, etc.\nEach integration type requires a distinct set of configuration fields.\nFor example, if you set type to DATADOG, you must configure only datadog subfields.",
                "enum": [
                  "PAGER_DUTY",
                  "SLACK",
                  "DATADOG",
                  "NEW_RELIC",
                  "OPS_GENIE",
                  "VICTOR_OPS",
                  "FLOWDOCK",
                  "WEBHOOK",
                  "MICROSOFT_TEAMS",
                  "PROMETHEUS"
                ],
                "type": "string"
              },
              "url": {
                "description": "Endpoint web address to which Atlas sends notifications.\nUsed for Webhooks.",
                "type": "string"
              },
              "username": {
                "description": "Human-readable label that identifies your Prometheus incoming webhook.",
                "type": "string"
              },
              "writeTokenRef": {
                "description": "Reference to a Kubernetes Secret containing the insert key associated with your New Relic account.",
                "properties": {
                  "name": {
                    "description": "Name of the Kubernetes Resource",
                    "type": "string"
                  },
                  "namespace": {
                    "description": "Namespace of the Kubernetes Resource",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "maintenanceWindow": {
          "description": "MaintenanceWindow allows to specify a preferred time in the week to run maintenance operations. See more\ninformation at https://www.mongodb.com/docs/atlas/reference/api/maintenance-windows/",
          "properties": {
            "autoDefer": {
              "description": "Flag indicating whether any scheduled project maintenance should be deferred automatically for one week.",
              "type": "boolean"
            },
            "dayOfWeek": {
              "description": "Day of the week when you would like the maintenance window to start as a 1-based integer.\nSunday 1, Monday 2, Tuesday 3, Wednesday 4, Thursday 5, Friday 6, Saturday 7.",
              "maximum": 7,
              "minimum": 1,
              "type": "integer"
            },
            "defer": {
              "description": "Flag indicating whether the next scheduled project maintenance should be deferred for one week.\nCannot be specified if startASAP is true",
              "type": "boolean"
            },
            "hourOfDay": {
              "description": "Hour of the day when you would like the maintenance window to start.\nThis parameter uses the 24-hour clock, where midnight is 0, noon is 12.",
              "maximum": 23,
              "minimum": 0,
              "type": "integer"
            },
            "startASAP": {
              "description": "Flag indicating whether project maintenance has been directed to start immediately.\nCannot be specified if defer is true",
              "type": "boolean"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "name": {
          "description": "Name is the name of the Project that is created in Atlas by the Operator if it doesn't exist yet.\nThe name length must not exceed 64 characters. The name must contain only letters, numbers, spaces, dashes, and underscores.",
          "type": "string",
          "x-kubernetes-validations": [
            {
              "message": "Name cannot be modified after project creation",
              "rule": "self == oldSelf"
            }
          ]
        },
        "networkPeers": {
          "description": "NetworkPeers is a list of Network Peers configured for the current Project.\nDeprecated: Migrate to the AtlasNetworkPeering and AtlasNetworkContainer custom resources in accordance with\nthe migration guide at https://www.mongodb.com/docs/atlas/operator/current/migrate-parameter-to-resource/#std-label-ak8so-migrate-ptr",
          "items": {
            "description": "NetworkPeer configured for the current Project.\nDeprecated: Migrate to the AtlasNetworkPeering and AtlasNetworkContainer custom resources in accordance with\nthe migration guide at https://www.mongodb.com/docs/atlas/operator/current/migrate-parameter-to-resource/#std-label-ak8so-migrate-ptr",
            "properties": {
              "accepterRegionName": {
                "description": "AccepterRegionName is the provider region name of user's VPC.",
                "type": "string"
              },
              "atlasCidrBlock": {
                "description": "Atlas CIDR. It needs to be set if ContainerID is not set.",
                "type": "string"
              },
              "awsAccountId": {
                "description": "AccountID of the user's VPC.",
                "type": "string"
              },
              "azureDirectoryId": {
                "description": "AzureDirectoryID is the unique identifier for an Azure AD directory.",
                "type": "string"
              },
              "azureSubscriptionId": {
                "description": "AzureSubscriptionID is the unique identifier of the Azure subscription in which the VNet resides.",
                "type": "string"
              },
              "containerId": {
                "description": "ID of the network peer container. If not set, operator will create a new container with ContainerRegion and AtlasCIDRBlock input.",
                "type": "string"
              },
              "containerRegion": {
                "description": "ContainerRegion is the provider region name of Atlas network peer container. If not set, AccepterRegionName is used.",
                "type": "string"
              },
              "gcpProjectId": {
                "description": "User GCP Project ID. Its applicable only for GCP.",
                "type": "string"
              },
              "networkName": {
                "description": "GCP Network Peer Name. Its applicable only for GCP.",
                "type": "string"
              },
              "providerName": {
                "description": "ProviderName is the name of the provider. If not set, it will be set to \"AWS\".",
                "type": "string"
              },
              "resourceGroupName": {
                "description": "ResourceGroupName is the name of your Azure resource group.",
                "type": "string"
              },
              "routeTableCidrBlock": {
                "description": "User VPC CIDR.",
                "type": "string"
              },
              "vnetName": {
                "description": "VNetName is name of your Azure VNet. Its applicable only for Azure.",
                "type": "string"
              },
              "vpcId": {
                "description": "AWS VPC ID.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "privateEndpoints": {
          "description": "PrivateEndpoints is a list of Private Endpoints configured for the current Project.\nDeprecated: Migrate to the AtlasPrivateEndpoint Custom Resource in accordance with the migration guide\nat https://www.mongodb.com/docs/atlas/operator/current/migrate-parameter-to-resource/#std-label-ak8so-migrate-ptr",
          "items": {
            "description": "PrivateEndpoint is a list of Private Endpoints configured for the current Project.\nDeprecated: Migrate to the AtlasPrivateEndpoint Custom Resource in accordance with the migration guide\nat https://www.mongodb.com/docs/atlas/operator/current/migrate-parameter-to-resource/#std-label-ak8so-migrate-ptr",
            "properties": {
              "endpointGroupName": {
                "description": "Unique identifier of the endpoint group. The endpoint group encompasses all the endpoints that you created in Google Cloud.",
                "type": "string"
              },
              "endpoints": {
                "description": "Collection of individual private endpoints that comprise your endpoint group.",
                "items": {
                  "properties": {
                    "endpointName": {
                      "description": "Forwarding rule that corresponds to the endpoint you created in Google Cloud.",
                      "type": "string"
                    },
                    "ipAddress": {
                      "description": "Private IP address of the endpoint you created in Google Cloud.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "gcpProjectId": {
                "description": "Unique identifier of the Google Cloud project in which you created your endpoints.",
                "type": "string"
              },
              "id": {
                "description": "Unique identifier of the private endpoint you created in your AWS VPC or Azure VNet.",
                "type": "string"
              },
              "ip": {
                "description": "Private IP address of the private endpoint network interface you created in your Azure VNet.",
                "type": "string"
              },
              "provider": {
                "description": "Cloud provider for which you want to retrieve a private endpoint service. Atlas accepts AWS, GCP, or AZURE.",
                "enum": [
                  "AWS",
                  "GCP",
                  "AZURE",
                  "TENANT"
                ],
                "type": "string"
              },
              "region": {
                "description": "Cloud provider region for which you want to create the private endpoint service.",
                "type": "string"
              }
            },
            "required": [
              "provider",
              "region"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "projectIpAccessList": {
          "description": "ProjectIPAccessList allows the use of the IP Access List for a Project. See more information at\nhttps://docs.atlas.mongodb.com/reference/api/ip-access-list/add-entries-to-access-list/\nDeprecated: Migrate to the AtlasIPAccessList Custom Resource in accordance with the migration guide\nat https://www.mongodb.com/docs/atlas/operator/current/migrate-parameter-to-resource/#std-label-ak8so-migrate-ptr",
          "items": {
            "description": "IPAccessList allows the use of the IP Access List for a Project. See more information at\nhttps://docs.atlas.mongodb.com/reference/api/ip-access-list/add-entries-to-access-list/\nDeprecated: Migrate to the AtlasIPAccessList Custom Resource in accordance with the migration guide\nat https://www.mongodb.com/docs/atlas/operator/current/migrate-parameter-to-resource/#std-label-ak8so-migrate-ptr",
            "properties": {
              "awsSecurityGroup": {
                "description": "Unique identifier of AWS security group in this access list entry.",
                "type": "string"
              },
              "cidrBlock": {
                "description": "Range of IP addresses in CIDR notation in this access list entry.",
                "type": "string"
              },
              "comment": {
                "description": "Comment associated with this access list entry.",
                "type": "string"
              },
              "deleteAfterDate": {
                "description": "Timestamp in ISO 8601 date and time format in UTC after which Atlas deletes the temporary access list entry.",
                "type": "string"
              },
              "ipAddress": {
                "description": "Entry using an IP address in this access list entry.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "regionUsageRestrictions": {
          "default": "NONE",
          "description": "RegionUsageRestrictions designate the project's AWS region when using Atlas for Government.\nThis parameter should not be used with commercial Atlas.\nIn Atlas for Government, not setting this field (defaulting to NONE) means the project is restricted to COMMERCIAL_FEDRAMP_REGIONS_ONLY.",
          "enum": [
            "NONE",
            "GOV_REGIONS_ONLY",
            "COMMERCIAL_FEDRAMP_REGIONS_ONLY"
          ],
          "type": "string"
        },
        "settings": {
          "description": "Settings allows the configuration of the Project Settings.",
          "properties": {
            "isCollectDatabaseSpecificsStatisticsEnabled": {
              "description": "Flag that indicates whether to collect database-specific metrics for the specified project.",
              "type": "boolean"
            },
            "isDataExplorerEnabled": {
              "description": "Flag that indicates whether to enable the Data Explorer for the specified project.",
              "type": "boolean"
            },
            "isExtendedStorageSizesEnabled": {
              "description": "Flag that indicates whether to enable extended storage sizes for the specified project.",
              "type": "boolean"
            },
            "isPerformanceAdvisorEnabled": {
              "description": "Flag that indicates whether to enable the Performance Advisor and Profiler for the specified project.",
              "type": "boolean"
            },
            "isRealtimePerformancePanelEnabled": {
              "description": "Flag that indicates whether to enable the Real Time Performance Panel for the specified project.",
              "type": "boolean"
            },
            "isSchemaAdvisorEnabled": {
              "description": "Flag that indicates whether to enable the Schema Advisor for the specified project.",
              "type": "boolean"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "teams": {
          "description": "Teams enable you to grant project access roles to multiple users.",
          "items": {
            "properties": {
              "roles": {
                "description": "Roles the users in the team has within the project.",
                "items": {
                  "enum": [
                    "GROUP_OWNER",
                    "GROUP_CLUSTER_MANAGER",
                    "GROUP_DATA_ACCESS_ADMIN",
                    "GROUP_DATA_ACCESS_READ_WRITE",
                    "GROUP_DATA_ACCESS_READ_ONLY",
                    "GROUP_READ_ONLY"
                  ],
                  "type": "string"
                },
                "minItems": 1,
                "type": "array"
              },
              "teamRef": {
                "description": "Reference to the AtlasTeam custom resource which will be assigned to the project.",
                "properties": {
                  "name": {
                    "description": "Name of the Kubernetes Resource",
                    "type": "string"
                  },
                  "namespace": {
                    "description": "Namespace of the Kubernetes Resource",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              }
            },
            "required": [
              "roles",
              "teamRef"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "withDefaultAlertsSettings": {
          "default": true,
          "description": "Flag that indicates whether Atlas Kubernetes Operator creates a project with the default alert configurations.\nIf you use this setting, you must also set spec.alertConfigurationSyncEnabled to true for Atlas Kubernetes\nOperator to modify project alert configurations.\nIf you set this parameter to false when you create a project, Atlas doesn't add the default alert configurations\nto your project.\nThis setting has no effect on existing projects.",
          "type": "boolean"
        },
        "x509CertRef": {
          "description": "X509CertRef is a reference to the Kubernetes Secret which contains PEM-encoded CA certificate.\nAtlas Kubernetes Operator watches secrets only with the label atlas.mongodb.com/type=credentials to avoid\nwatching unnecessary secrets.",
          "properties": {
            "name": {
              "description": "Name of the Kubernetes Resource",
              "type": "string"
            },
            "namespace": {
              "description": "Namespace of the Kubernetes Resource",
              "type": "string"
            }
          },
          "required": [
            "name"
          ],
          "type": "object",
          "additionalProperties": false
        }
      },
      "required": [
        "name"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "AtlasProjectStatus defines the observed state of AtlasProject",
      "properties": {
        "alertConfigurations": {
          "description": "AlertConfigurations contains a list of alert configuration statuses",
          "items": {
            "properties": {
              "acknowledgedUntil": {
                "description": "The date through which the alert has been acknowledged. Will not be present if the alert has never been acknowledged.",
                "type": "string"
              },
              "acknowledgementComment": {
                "description": "The comment left by the user who acknowledged the alert. Will not be present if the alert has never been acknowledged.",
                "type": "string"
              },
              "acknowledgingUsername": {
                "description": "The username of the user who acknowledged the alert. Will not be present if the alert has never been acknowledged.",
                "type": "string"
              },
              "alertConfigId": {
                "description": "ID of the alert configuration that triggered this alert.",
                "type": "string"
              },
              "clusterId": {
                "description": "The ID of the cluster to which this alert applies. Only present for alerts of type BACKUP, REPLICA_SET, and CLUSTER.",
                "type": "string"
              },
              "clusterName": {
                "description": "The name the cluster to which this alert applies. Only present for alerts of type BACKUP, REPLICA_SET, and CLUSTER.",
                "type": "string"
              },
              "created": {
                "description": "Timestamp in ISO 8601 date and time format in UTC when this alert configuration was created.",
                "type": "string"
              },
              "currentValue": {
                "description": "CurrentValue represents current value of the metric that triggered the alert. Only present for alerts of type HOST_METRIC.",
                "properties": {
                  "number": {
                    "description": "The value of the metric.",
                    "type": "string"
                  },
                  "units": {
                    "description": "The units for the value. Depends on the type of metric.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "enabled": {
                "description": "If omitted, the configuration is disabled.",
                "type": "boolean"
              },
              "errorMessage": {
                "description": "ErrorMessage is massage if the alert configuration is in an incorrect state.",
                "type": "string"
              },
              "eventTypeName": {
                "description": "The type of event that will trigger an alert.",
                "type": "string"
              },
              "groupId": {
                "description": "Unique identifier of the project that owns this alert configuration.",
                "type": "string"
              },
              "hostId": {
                "description": "ID of the host to which the metric pertains. Only present for alerts of type HOST, HOST_METRIC, and REPLICA_SET.",
                "type": "string"
              },
              "hostnameAndPort": {
                "description": "The hostname and port of each host to which the alert applies. Only present for alerts of type HOST, HOST_METRIC, and REPLICA_SET.",
                "type": "string"
              },
              "id": {
                "description": "Unique identifier.",
                "type": "string"
              },
              "lastNotified": {
                "description": "When the last notification was sent for this alert. Only present if notifications have been sent.",
                "type": "string"
              },
              "matchers": {
                "description": "You can filter using the matchers array only when the EventTypeName specifies an event for a host, replica set, or sharded cluster.",
                "items": {
                  "properties": {
                    "fieldName": {
                      "description": "Name of the field in the target object to match on.",
                      "type": "string"
                    },
                    "operator": {
                      "description": "The operator to test the field\u2019s value.",
                      "type": "string"
                    },
                    "value": {
                      "description": "Value to test with the specified operator.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "metricName": {
                "description": "The name of the measurement whose value went outside the threshold. Only present if eventTypeName is set to OUTSIDE_METRIC_THRESHOLD.",
                "type": "string"
              },
              "metricThreshold": {
                "description": "MetricThreshold  causes an alert to be triggered.",
                "properties": {
                  "metricName": {
                    "description": "Name of the metric to check.",
                    "type": "string"
                  },
                  "mode": {
                    "description": "This must be set to AVERAGE. Atlas computes the current metric value as an average.",
                    "type": "string"
                  },
                  "operator": {
                    "description": "Operator to apply when checking the current metric value against the threshold value.",
                    "type": "string"
                  },
                  "threshold": {
                    "description": "Threshold value outside which an alert will be triggered.",
                    "type": "string"
                  },
                  "units": {
                    "description": "The units for the threshold value.",
                    "type": "string"
                  }
                },
                "required": [
                  "threshold"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "notifications": {
                "description": "Notifications are sending when an alert condition is detected.",
                "items": {
                  "properties": {
                    "apiToken": {
                      "description": "Slack API token or Bot token. Populated for the SLACK notifications type. If the token later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.",
                      "type": "string"
                    },
                    "channelName": {
                      "description": "Slack channel name. Populated for the SLACK notifications type.",
                      "type": "string"
                    },
                    "datadogApiKey": {
                      "description": "Datadog API Key. Found in the Datadog dashboard. Populated for the DATADOG notifications type.",
                      "type": "string"
                    },
                    "datadogRegion": {
                      "description": "Region that indicates which API URL to use",
                      "type": "string"
                    },
                    "delayMin": {
                      "description": "Number of minutes to wait after an alert condition is detected before sending out the first notification.",
                      "type": "integer"
                    },
                    "emailAddress": {
                      "description": "Email address to which alert notifications are sent. Populated for the EMAIL notifications type.",
                      "type": "string"
                    },
                    "emailEnabled": {
                      "description": "Flag indicating if email notifications should be sent. Populated for ORG, GROUP, and USER notifications types.",
                      "type": "boolean"
                    },
                    "flowName": {
                      "description": "Flowdock flow namse in lower-case letters.",
                      "type": "string"
                    },
                    "flowdockApiToken": {
                      "description": "The Flowdock personal API token. Populated for the FLOWDOCK notifications type. If the token later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.",
                      "type": "string"
                    },
                    "intervalMin": {
                      "description": "Number of minutes to wait between successive notifications for unacknowledged alerts that are not resolved.",
                      "type": "integer"
                    },
                    "mobileNumber": {
                      "description": "Mobile number to which alert notifications are sent. Populated for the SMS notifications type.",
                      "type": "string"
                    },
                    "opsGenieApiKey": {
                      "description": "Opsgenie API Key. Populated for the OPS_GENIE notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.",
                      "type": "string"
                    },
                    "opsGenieRegion": {
                      "description": "Region that indicates which API URL to use.",
                      "type": "string"
                    },
                    "orgName": {
                      "description": "Flowdock organization name in lower-case letters. This is the name that appears after www.flowdock.com/app/ in the URL string. Populated for the FLOWDOCK notifications type.",
                      "type": "string"
                    },
                    "roles": {
                      "description": "The following roles grant privileges within a project.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "serviceKey": {
                      "description": "PagerDuty service key. Populated for the PAGER_DUTY notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.",
                      "type": "string"
                    },
                    "smsEnabled": {
                      "description": "Flag indicating if text message notifications should be sent. Populated for ORG, GROUP, and USER notifications types.",
                      "type": "boolean"
                    },
                    "teamId": {
                      "description": "Unique identifier of a team.",
                      "type": "string"
                    },
                    "teamName": {
                      "description": "Label for the team that receives this notification.",
                      "type": "string"
                    },
                    "typeName": {
                      "description": "Type of alert notification.",
                      "type": "string"
                    },
                    "username": {
                      "description": "Name of the Atlas user to which to send notifications. Only a user in the project that owns the alert configuration is allowed here. Populated for the USER notifications type.",
                      "type": "string"
                    },
                    "victorOpsApiKey": {
                      "description": "VictorOps API key. Populated for the VICTOR_OPS notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.",
                      "type": "string"
                    },
                    "victorOpsRoutingKey": {
                      "description": "VictorOps routing key. Populated for the VICTOR_OPS notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "replicaSetName": {
                "description": "Name of the replica set. Only present for alerts of type HOST, HOST_METRIC, BACKUP, and REPLICA_SET.",
                "type": "string"
              },
              "resolved": {
                "description": "When the alert was closed. Only present if the status is CLOSED.",
                "type": "string"
              },
              "severityOverride": {
                "description": "Severity of the alert.",
                "type": "string"
              },
              "sourceTypeName": {
                "description": "For alerts of the type BACKUP, the type of server being backed up.",
                "type": "string"
              },
              "status": {
                "description": "The current state of the alert. Possible values are: TRACKING, OPEN, CLOSED, CANCELED",
                "type": "string"
              },
              "threshold": {
                "description": "Threshold  causes an alert to be triggered.",
                "properties": {
                  "operator": {
                    "description": "Operator to apply when checking the current metric value against the threshold value. it accepts the following values: GREATER_THAN, LESS_THAN",
                    "type": "string"
                  },
                  "threshold": {
                    "description": "Threshold value outside which an alert will be triggered.",
                    "type": "string"
                  },
                  "units": {
                    "description": "The units for the threshold value",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "updated": {
                "description": "Timestamp in ISO 8601 date and time format in UTC when this alert configuration was last updated.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "authModes": {
          "description": "AuthModes contains a list of configured authentication modes\n\"SCRAM\" is default authentication method and requires a password for each user\n\"X509\" signifies that self-managed X.509 authentication is configured",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "cloudProviderIntegrations": {
          "description": "CloudProviderIntegrations contains a list of configured cloud provider access roles. AWS support only",
          "items": {
            "properties": {
              "atlasAWSAccountArn": {
                "description": "Amazon Resource Name that identifies the Amazon Web Services user account that MongoDB Atlas uses when it assumes the Identity and Access Management role.",
                "type": "string"
              },
              "atlasAssumedRoleExternalId": {
                "description": "Unique external ID that MongoDB Atlas uses when it assumes the IAM role in your Amazon Web Services account.",
                "type": "string"
              },
              "authorizedDate": {
                "description": "Date and time when someone authorized this role for the specified cloud service provider. This parameter expresses its value in the ISO 8601 timestamp format in UTC.",
                "type": "string"
              },
              "createdDate": {
                "description": "Date and time when someone created this role for the specified cloud service provider. This parameter expresses its value in the ISO 8601 timestamp format in UTC.",
                "type": "string"
              },
              "errorMessage": {
                "description": "Application error message returned.",
                "type": "string"
              },
              "featureUsages": {
                "description": "List that contains application features associated with this Amazon Web Services Identity and Access Management role.",
                "items": {
                  "properties": {
                    "featureId": {
                      "description": "Identifying characteristics about the data lake linked to this Amazon Web Services Identity and Access Management role.",
                      "type": "string"
                    },
                    "featureType": {
                      "description": "Human-readable label that describes one MongoDB Cloud feature linked to this Amazon Web Services Identity and Access Management role.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "iamAssumedRoleArn": {
                "description": "Amazon Resource Name that identifies the Amazon Web Services Identity and Access Management role that MongoDB Cloud assumes when it accesses resources in your AWS account.",
                "type": "string"
              },
              "providerName": {
                "description": "Human-readable label that identifies the cloud provider of the role.",
                "type": "string"
              },
              "roleId": {
                "description": "Unique 24-hexadecimal digit string that identifies the role.",
                "type": "string"
              },
              "status": {
                "description": "Provision status of the service account.\nValues are IN_PROGRESS, COMPLETE, FAILED, or NOT_INITIATED.",
                "type": "string"
              }
            },
            "required": [
              "atlasAssumedRoleExternalId",
              "providerName"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "conditions": {
          "description": "Conditions is the list of statuses showing the current state of the Atlas Custom Resource",
          "items": {
            "description": "Condition describes the state of an Atlas Custom Resource at a certain point.",
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.\nRepresented in ISO 8601 format.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A message providing details about the transition.",
                "type": "string"
              },
              "reason": {
                "description": "The reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition; one of True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type of Atlas Custom Resource condition.",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "customRoles": {
          "description": "CustomRoles contains a list of custom roles statuses",
          "items": {
            "properties": {
              "error": {
                "description": "The message when the custom role is in the FAILED status",
                "type": "string"
              },
              "name": {
                "description": "Role name which is unique",
                "type": "string"
              },
              "status": {
                "description": "The status of the given custom role (OK or FAILED)",
                "type": "string"
              }
            },
            "required": [
              "name",
              "status"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "expiredIpAccessList": {
          "description": "The list of IP Access List entries that are expired due to 'deleteAfterDate' being less than the current date.\nNote, that this field is updated by the Atlas Operator only after specification changes",
          "items": {
            "description": "IPAccessList allows the use of the IP Access List for a Project. See more information at\nhttps://docs.atlas.mongodb.com/reference/api/ip-access-list/add-entries-to-access-list/\nDeprecated: Migrate to the AtlasIPAccessList Custom Resource in accordance with the migration guide\nat https://www.mongodb.com/docs/atlas/operator/current/migrate-parameter-to-resource/#std-label-ak8so-migrate-ptr",
            "properties": {
              "awsSecurityGroup": {
                "description": "Unique identifier of AWS security group in this access list entry.",
                "type": "string"
              },
              "cidrBlock": {
                "description": "Range of IP addresses in CIDR notation in this access list entry.",
                "type": "string"
              },
              "comment": {
                "description": "Comment associated with this access list entry.",
                "type": "string"
              },
              "deleteAfterDate": {
                "description": "Timestamp in ISO 8601 date and time format in UTC after which Atlas deletes the temporary access list entry.",
                "type": "string"
              },
              "ipAddress": {
                "description": "Entry using an IP address in this access list entry.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "id": {
          "description": "The ID of the Atlas Project",
          "type": "string"
        },
        "networkPeers": {
          "description": "The list of network peers that are configured for current project",
          "items": {
            "properties": {
              "atlasGcpProjectId": {
                "description": "ProjectID of Atlas container. Applicable only for GCP. It's needed to add network peer connection.",
                "type": "string"
              },
              "atlasNetworkName": {
                "description": "Atlas Network Name. Applicable only for GCP. It's needed to add network peer connection.",
                "type": "string"
              },
              "connectionId": {
                "description": "Unique identifier of the network peer connection. Applicable only for AWS.",
                "type": "string"
              },
              "containerId": {
                "description": "ContainerID of Atlas network peer container.",
                "type": "string"
              },
              "errorMessage": {
                "description": "Error state of the network peer. Applicable only for GCP.",
                "type": "string"
              },
              "errorState": {
                "description": "Error state of the network peer. Applicable only for Azure.",
                "type": "string"
              },
              "errorStateName": {
                "description": "Error state of the network peer. Applicable only for AWS.",
                "type": "string"
              },
              "gcpProjectId": {
                "description": "ProjectID of the user's vpc. Applicable only for GCP.",
                "type": "string"
              },
              "id": {
                "description": "Unique identifier for NetworkPeer.",
                "type": "string"
              },
              "providerName": {
                "description": "Cloud provider for which you want to retrieve a network peer.",
                "type": "string"
              },
              "region": {
                "description": "Region for which you want to create the network peer. It isn't needed for GCP",
                "type": "string"
              },
              "status": {
                "description": "Status of the network peer. Applicable only for GCP and Azure.",
                "type": "string"
              },
              "statusName": {
                "description": "Status of the network peer. Applicable only for AWS.",
                "type": "string"
              },
              "vpc": {
                "description": "VPC is general purpose field for storing the name of the VPC.\nVPC is vpcID for AWS, user networkName for GCP, and vnetName for Azure.",
                "type": "string"
              }
            },
            "required": [
              "id",
              "providerName",
              "region"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "observedGeneration": {
          "description": "ObservedGeneration indicates the generation of the resource specification of which the Atlas Operator is aware.\nThe Atlas Operator updates this field to the value of 'metadata.generation' as soon as it starts reconciliation of the resource.",
          "format": "int64",
          "type": "integer"
        },
        "privateEndpoints": {
          "description": "The list of private endpoints configured for current project",
          "items": {
            "properties": {
              "endpoints": {
                "description": "Collection of individual GCP private endpoints that comprise your network endpoint group.",
                "items": {
                  "properties": {
                    "endpointName": {
                      "description": "Human-readable label that identifies the Google Cloud consumer forwarding rule that you created.",
                      "type": "string"
                    },
                    "ipAddress": {
                      "description": "One Private Internet Protocol version 4 (IPv4) address to which this Google Cloud consumer forwarding rule resolves.",
                      "type": "string"
                    },
                    "status": {
                      "description": "State of the MongoDB Atlas endpoint group when MongoDB Cloud received this request.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "endpointName",
                    "ipAddress",
                    "status"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "id": {
                "description": "Unique identifier for AWS or AZURE Private Link Connection.",
                "type": "string"
              },
              "interfaceEndpointId": {
                "description": "Unique identifier of the AWS or Azure Private Link Interface Endpoint.",
                "type": "string"
              },
              "provider": {
                "description": "Cloud provider for which you want to retrieve a private endpoint service. Atlas accepts AWS or AZURE.",
                "type": "string"
              },
              "region": {
                "description": "Cloud provider region for which you want to create the private endpoint service.",
                "type": "string"
              },
              "serviceAttachmentNames": {
                "description": "Unique alphanumeric and special character strings that identify the service attachments associated with the GCP Private Service Connect endpoint service.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "serviceName": {
                "description": "Name of the AWS or Azure Private Link Service that Atlas manages.",
                "type": "string"
              },
              "serviceResourceId": {
                "description": "Unique identifier of the Azure Private Link Service (for AWS the same as ID).",
                "type": "string"
              }
            },
            "required": [
              "provider",
              "region"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "prometheus": {
          "description": "Prometheus contains the status for Prometheus integration\nincluding the prometheusDiscoveryURL",
          "properties": {
            "prometheusDiscoveryURL": {
              "description": "URL from which Prometheus fetches the targets.",
              "type": "string"
            },
            "scheme": {
              "description": "Protocol scheme used for Prometheus requests.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "teams": {
          "description": "Teams contains a list of teams assignment statuses",
          "items": {
            "properties": {
              "id": {
                "type": "string"
              },
              "teamRef": {
                "description": "ResourceRefNamespaced is a reference to a Kubernetes Resource that allows to configure the namespace",
                "properties": {
                  "name": {
                    "description": "Name of the Kubernetes Resource",
                    "type": "string"
                  },
                  "namespace": {
                    "description": "Namespace of the Kubernetes Resource",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              }
            },
            "required": [
              "teamRef"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        }
      },
      "required": [
        "conditions"
      ],
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
