composer.projects.locations.environments.checkUpgrade

valid {
    input.Body.imageVersion == STRING
    input.ReqMap.environment == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.create

enum_AirflowMetadataRetentionPolicyConfigRetentionMode := [ "RETENTION_MODE_UNSPECIFIED", "RETENTION_MODE_ENABLED", "RETENTION_MODE_DISABLED" ]
enum_EnvironmentConfigEnvironmentSize := [ "ENVIRONMENT_SIZE_UNSPECIFIED", "ENVIRONMENT_SIZE_SMALL", "ENVIRONMENT_SIZE_MEDIUM", "ENVIRONMENT_SIZE_LARGE" ]
enum_EnvironmentConfigResilienceMode := [ "RESILIENCE_MODE_UNSPECIFIED", "HIGH_RESILIENCE" ]
enum_EnvironmentState := [ "STATE_UNSPECIFIED", "CREATING", "RUNNING", "UPDATING", "DELETING", "ERROR" ]
enum_NetworkingConfigConnectionType := [ "CONNECTION_TYPE_UNSPECIFIED", "VPC_PEERING", "PRIVATE_SERVICE_CONNECT" ]
enum_SoftwareConfigWebServerPluginsMode := [ "WEB_SERVER_PLUGINS_MODE_UNSPECIFIED", "PLUGINS_DISABLED", "PLUGINS_ENABLED" ]
enum_TaskLogsRetentionConfigStorageMode := [ "TASK_LOGS_STORAGE_MODE_UNSPECIFIED", "CLOUD_LOGGING_AND_CLOUD_STORAGE", "CLOUD_LOGGING_ONLY" ]

valid {
    input.Body.config.airflowUri == STRING
    input.Body.config.dagGcsPrefix == STRING
    input.Body.config.dataRetentionConfig.airflowMetadataRetentionConfig.retentionDays == INTEGER
    input.Body.config.dataRetentionConfig.airflowMetadataRetentionConfig.retentionMode == enum_AirflowMetadataRetentionPolicyConfigRetentionMode[_]
    input.Body.config.dataRetentionConfig.taskLogsRetentionConfig.storageMode == enum_TaskLogsRetentionConfigStorageMode[_]
    input.Body.config.databaseConfig.machineType == STRING
    input.Body.config.databaseConfig.zone == STRING
    input.Body.config.encryptionConfig.kmsKeyName == STRING
    input.Body.config.environmentSize == enum_EnvironmentConfigEnvironmentSize[_]
    input.Body.config.gkeCluster == STRING
    input.Body.config.maintenanceWindow.endTime == STRING
    input.Body.config.maintenanceWindow.recurrence == STRING
    input.Body.config.maintenanceWindow.startTime == STRING
    input.Body.config.masterAuthorizedNetworksConfig.cidrBlocks[_].cidrBlock == STRING
    input.Body.config.masterAuthorizedNetworksConfig.cidrBlocks[_].displayName == STRING
    input.Body.config.masterAuthorizedNetworksConfig.enabled == BOOLEAN
    input.Body.config.nodeConfig.composerInternalIpv4CidrBlock == STRING
    input.Body.config.nodeConfig.composerNetworkAttachment == STRING
    input.Body.config.nodeConfig.diskSizeGb == INTEGER
    input.Body.config.nodeConfig.enableIpMasqAgent == BOOLEAN
    input.Body.config.nodeConfig.ipAllocationPolicy.clusterIpv4CidrBlock == STRING
    input.Body.config.nodeConfig.ipAllocationPolicy.clusterSecondaryRangeName == STRING
    input.Body.config.nodeConfig.ipAllocationPolicy.servicesIpv4CidrBlock == STRING
    input.Body.config.nodeConfig.ipAllocationPolicy.servicesSecondaryRangeName == STRING
    input.Body.config.nodeConfig.ipAllocationPolicy.useIpAliases == BOOLEAN
    input.Body.config.nodeConfig.location == STRING
    input.Body.config.nodeConfig.machineType == STRING
    input.Body.config.nodeConfig.network == STRING
    input.Body.config.nodeConfig.oauthScopes[_] == STRING
    input.Body.config.nodeConfig.serviceAccount == STRING
    input.Body.config.nodeConfig.subnetwork == STRING
    input.Body.config.nodeConfig.tags[_] == STRING
    input.Body.config.nodeCount == INTEGER
    input.Body.config.privateEnvironmentConfig.cloudComposerConnectionSubnetwork == STRING
    input.Body.config.privateEnvironmentConfig.cloudComposerNetworkIpv4CidrBlock == STRING
    input.Body.config.privateEnvironmentConfig.cloudSqlIpv4CidrBlock == STRING
    input.Body.config.privateEnvironmentConfig.enablePrivateBuildsOnly == BOOLEAN
    input.Body.config.privateEnvironmentConfig.enablePrivateEnvironment == BOOLEAN
    input.Body.config.privateEnvironmentConfig.enablePrivatelyUsedPublicIps == BOOLEAN
    input.Body.config.privateEnvironmentConfig.networkingConfig.connectionType == enum_NetworkingConfigConnectionType[_]
    input.Body.config.privateEnvironmentConfig.privateClusterConfig.enablePrivateEndpoint == BOOLEAN
    input.Body.config.privateEnvironmentConfig.privateClusterConfig.masterIpv4CidrBlock == STRING
    input.Body.config.privateEnvironmentConfig.webServerIpv4CidrBlock == STRING
    input.Body.config.recoveryConfig.scheduledSnapshotsConfig.enabled == BOOLEAN
    input.Body.config.recoveryConfig.scheduledSnapshotsConfig.snapshotCreationSchedule == STRING
    input.Body.config.recoveryConfig.scheduledSnapshotsConfig.snapshotLocation == STRING
    input.Body.config.recoveryConfig.scheduledSnapshotsConfig.timeZone == STRING
    input.Body.config.resilienceMode == enum_EnvironmentConfigResilienceMode[_]
    input.Body.config.softwareConfig.airflowConfigOverrides.STRING == STRING
    input.Body.config.softwareConfig.cloudDataLineageIntegration.enabled == BOOLEAN
    input.Body.config.softwareConfig.envVariables.STRING == STRING
    input.Body.config.softwareConfig.imageVersion == STRING
    input.Body.config.softwareConfig.pypiPackages.STRING == STRING
    input.Body.config.softwareConfig.pythonVersion == STRING
    input.Body.config.softwareConfig.schedulerCount == INTEGER
    input.Body.config.softwareConfig.webServerPluginsMode == enum_SoftwareConfigWebServerPluginsMode[_]
    input.Body.config.webServerConfig.machineType == STRING
    input.Body.config.webServerNetworkAccessControl.allowedIpRanges[_].description == STRING
    input.Body.config.webServerNetworkAccessControl.allowedIpRanges[_].value == STRING
    input.Body.config.workloadsConfig.dagProcessor.count == INTEGER
    input.Body.config.workloadsConfig.dagProcessor.cpu == NUMBER
    input.Body.config.workloadsConfig.dagProcessor.memoryGb == NUMBER
    input.Body.config.workloadsConfig.dagProcessor.storageGb == NUMBER
    input.Body.config.workloadsConfig.scheduler.count == INTEGER
    input.Body.config.workloadsConfig.scheduler.cpu == NUMBER
    input.Body.config.workloadsConfig.scheduler.memoryGb == NUMBER
    input.Body.config.workloadsConfig.scheduler.storageGb == NUMBER
    input.Body.config.workloadsConfig.triggerer.count == INTEGER
    input.Body.config.workloadsConfig.triggerer.cpu == NUMBER
    input.Body.config.workloadsConfig.triggerer.memoryGb == NUMBER
    input.Body.config.workloadsConfig.webServer.cpu == NUMBER
    input.Body.config.workloadsConfig.webServer.memoryGb == NUMBER
    input.Body.config.workloadsConfig.webServer.storageGb == NUMBER
    input.Body.config.workloadsConfig.worker.cpu == NUMBER
    input.Body.config.workloadsConfig.worker.maxCount == INTEGER
    input.Body.config.workloadsConfig.worker.memoryGb == NUMBER
    input.Body.config.workloadsConfig.worker.minCount == INTEGER
    input.Body.config.workloadsConfig.worker.storageGb == NUMBER
    input.Body.createTime == STRING
    input.Body.labels.STRING == STRING
    input.Body.name == STRING
    input.Body.state == enum_EnvironmentState[_]
    input.Body.storageConfig.bucket == STRING
    input.Body.updateTime == STRING
    input.Body.uuid == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.databaseFailover

valid {
    input.Body.STRING == STRING
    input.ReqMap.environment == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.executeAirflowCommand

valid {
    input.Body.command == STRING
    input.Body.parameters[_] == STRING
    input.Body.subcommand == STRING
    input.ReqMap.environment == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.fetchDatabaseProperties

valid {
    input.ReqMap.environment == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.loadSnapshot

valid {
    input.Body.skipAirflowOverridesSetting == BOOLEAN
    input.Body.skipEnvironmentVariablesSetting == BOOLEAN
    input.Body.skipGcsDataCopying == BOOLEAN
    input.Body.skipPypiPackagesInstallation == BOOLEAN
    input.Body.snapshotPath == STRING
    input.ReqMap.environment == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.patch

enum_AirflowMetadataRetentionPolicyConfigRetentionMode := [ "RETENTION_MODE_UNSPECIFIED", "RETENTION_MODE_ENABLED", "RETENTION_MODE_DISABLED" ]
enum_EnvironmentConfigEnvironmentSize := [ "ENVIRONMENT_SIZE_UNSPECIFIED", "ENVIRONMENT_SIZE_SMALL", "ENVIRONMENT_SIZE_MEDIUM", "ENVIRONMENT_SIZE_LARGE" ]
enum_EnvironmentConfigResilienceMode := [ "RESILIENCE_MODE_UNSPECIFIED", "HIGH_RESILIENCE" ]
enum_EnvironmentState := [ "STATE_UNSPECIFIED", "CREATING", "RUNNING", "UPDATING", "DELETING", "ERROR" ]
enum_NetworkingConfigConnectionType := [ "CONNECTION_TYPE_UNSPECIFIED", "VPC_PEERING", "PRIVATE_SERVICE_CONNECT" ]
enum_SoftwareConfigWebServerPluginsMode := [ "WEB_SERVER_PLUGINS_MODE_UNSPECIFIED", "PLUGINS_DISABLED", "PLUGINS_ENABLED" ]
enum_TaskLogsRetentionConfigStorageMode := [ "TASK_LOGS_STORAGE_MODE_UNSPECIFIED", "CLOUD_LOGGING_AND_CLOUD_STORAGE", "CLOUD_LOGGING_ONLY" ]

valid {
    input.Body.config.airflowUri == STRING
    input.Body.config.dagGcsPrefix == STRING
    input.Body.config.dataRetentionConfig.airflowMetadataRetentionConfig.retentionDays == INTEGER
    input.Body.config.dataRetentionConfig.airflowMetadataRetentionConfig.retentionMode == enum_AirflowMetadataRetentionPolicyConfigRetentionMode[_]
    input.Body.config.dataRetentionConfig.taskLogsRetentionConfig.storageMode == enum_TaskLogsRetentionConfigStorageMode[_]
    input.Body.config.databaseConfig.machineType == STRING
    input.Body.config.databaseConfig.zone == STRING
    input.Body.config.encryptionConfig.kmsKeyName == STRING
    input.Body.config.environmentSize == enum_EnvironmentConfigEnvironmentSize[_]
    input.Body.config.gkeCluster == STRING
    input.Body.config.maintenanceWindow.endTime == STRING
    input.Body.config.maintenanceWindow.recurrence == STRING
    input.Body.config.maintenanceWindow.startTime == STRING
    input.Body.config.masterAuthorizedNetworksConfig.cidrBlocks[_].cidrBlock == STRING
    input.Body.config.masterAuthorizedNetworksConfig.cidrBlocks[_].displayName == STRING
    input.Body.config.masterAuthorizedNetworksConfig.enabled == BOOLEAN
    input.Body.config.nodeConfig.composerInternalIpv4CidrBlock == STRING
    input.Body.config.nodeConfig.composerNetworkAttachment == STRING
    input.Body.config.nodeConfig.diskSizeGb == INTEGER
    input.Body.config.nodeConfig.enableIpMasqAgent == BOOLEAN
    input.Body.config.nodeConfig.ipAllocationPolicy.clusterIpv4CidrBlock == STRING
    input.Body.config.nodeConfig.ipAllocationPolicy.clusterSecondaryRangeName == STRING
    input.Body.config.nodeConfig.ipAllocationPolicy.servicesIpv4CidrBlock == STRING
    input.Body.config.nodeConfig.ipAllocationPolicy.servicesSecondaryRangeName == STRING
    input.Body.config.nodeConfig.ipAllocationPolicy.useIpAliases == BOOLEAN
    input.Body.config.nodeConfig.location == STRING
    input.Body.config.nodeConfig.machineType == STRING
    input.Body.config.nodeConfig.network == STRING
    input.Body.config.nodeConfig.oauthScopes[_] == STRING
    input.Body.config.nodeConfig.serviceAccount == STRING
    input.Body.config.nodeConfig.subnetwork == STRING
    input.Body.config.nodeConfig.tags[_] == STRING
    input.Body.config.nodeCount == INTEGER
    input.Body.config.privateEnvironmentConfig.cloudComposerConnectionSubnetwork == STRING
    input.Body.config.privateEnvironmentConfig.cloudComposerNetworkIpv4CidrBlock == STRING
    input.Body.config.privateEnvironmentConfig.cloudSqlIpv4CidrBlock == STRING
    input.Body.config.privateEnvironmentConfig.enablePrivateBuildsOnly == BOOLEAN
    input.Body.config.privateEnvironmentConfig.enablePrivateEnvironment == BOOLEAN
    input.Body.config.privateEnvironmentConfig.enablePrivatelyUsedPublicIps == BOOLEAN
    input.Body.config.privateEnvironmentConfig.networkingConfig.connectionType == enum_NetworkingConfigConnectionType[_]
    input.Body.config.privateEnvironmentConfig.privateClusterConfig.enablePrivateEndpoint == BOOLEAN
    input.Body.config.privateEnvironmentConfig.privateClusterConfig.masterIpv4CidrBlock == STRING
    input.Body.config.privateEnvironmentConfig.webServerIpv4CidrBlock == STRING
    input.Body.config.recoveryConfig.scheduledSnapshotsConfig.enabled == BOOLEAN
    input.Body.config.recoveryConfig.scheduledSnapshotsConfig.snapshotCreationSchedule == STRING
    input.Body.config.recoveryConfig.scheduledSnapshotsConfig.snapshotLocation == STRING
    input.Body.config.recoveryConfig.scheduledSnapshotsConfig.timeZone == STRING
    input.Body.config.resilienceMode == enum_EnvironmentConfigResilienceMode[_]
    input.Body.config.softwareConfig.airflowConfigOverrides.STRING == STRING
    input.Body.config.softwareConfig.cloudDataLineageIntegration.enabled == BOOLEAN
    input.Body.config.softwareConfig.envVariables.STRING == STRING
    input.Body.config.softwareConfig.imageVersion == STRING
    input.Body.config.softwareConfig.pypiPackages.STRING == STRING
    input.Body.config.softwareConfig.pythonVersion == STRING
    input.Body.config.softwareConfig.schedulerCount == INTEGER
    input.Body.config.softwareConfig.webServerPluginsMode == enum_SoftwareConfigWebServerPluginsMode[_]
    input.Body.config.webServerConfig.machineType == STRING
    input.Body.config.webServerNetworkAccessControl.allowedIpRanges[_].description == STRING
    input.Body.config.webServerNetworkAccessControl.allowedIpRanges[_].value == STRING
    input.Body.config.workloadsConfig.dagProcessor.count == INTEGER
    input.Body.config.workloadsConfig.dagProcessor.cpu == NUMBER
    input.Body.config.workloadsConfig.dagProcessor.memoryGb == NUMBER
    input.Body.config.workloadsConfig.dagProcessor.storageGb == NUMBER
    input.Body.config.workloadsConfig.scheduler.count == INTEGER
    input.Body.config.workloadsConfig.scheduler.cpu == NUMBER
    input.Body.config.workloadsConfig.scheduler.memoryGb == NUMBER
    input.Body.config.workloadsConfig.scheduler.storageGb == NUMBER
    input.Body.config.workloadsConfig.triggerer.count == INTEGER
    input.Body.config.workloadsConfig.triggerer.cpu == NUMBER
    input.Body.config.workloadsConfig.triggerer.memoryGb == NUMBER
    input.Body.config.workloadsConfig.webServer.cpu == NUMBER
    input.Body.config.workloadsConfig.webServer.memoryGb == NUMBER
    input.Body.config.workloadsConfig.webServer.storageGb == NUMBER
    input.Body.config.workloadsConfig.worker.cpu == NUMBER
    input.Body.config.workloadsConfig.worker.maxCount == INTEGER
    input.Body.config.workloadsConfig.worker.memoryGb == NUMBER
    input.Body.config.workloadsConfig.worker.minCount == INTEGER
    input.Body.config.workloadsConfig.worker.storageGb == NUMBER
    input.Body.createTime == STRING
    input.Body.labels.STRING == STRING
    input.Body.name == STRING
    input.Body.state == enum_EnvironmentState[_]
    input.Body.storageConfig.bucket == STRING
    input.Body.updateTime == STRING
    input.Body.uuid == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.pollAirflowCommand

valid {
    input.Body.executionId == STRING
    input.Body.nextLineNumber == INTEGER
    input.Body.pod == STRING
    input.Body.podNamespace == STRING
    input.ReqMap.environment == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.restartWebServer

valid {
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.saveSnapshot

valid {
    input.Body.snapshotLocation == STRING
    input.ReqMap.environment == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.stopAirflowCommand

valid {
    input.Body.executionId == STRING
    input.Body.force == BOOLEAN
    input.Body.pod == STRING
    input.Body.podNamespace == STRING
    input.ReqMap.environment == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.userWorkloadsConfigMaps.create

valid {
    input.Body.data.STRING == STRING
    input.Body.name == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.userWorkloadsConfigMaps.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.userWorkloadsConfigMaps.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.userWorkloadsConfigMaps.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.userWorkloadsConfigMaps.update

valid {
    input.Body.data.STRING == STRING
    input.Body.name == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.userWorkloadsSecrets.create

valid {
    input.Body.data.STRING == STRING
    input.Body.name == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.userWorkloadsSecrets.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.userWorkloadsSecrets.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.userWorkloadsSecrets.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.userWorkloadsSecrets.update

valid {
    input.Body.data.STRING == STRING
    input.Body.name == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.environments.workloads.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.imageVersions.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.includePastReleases == BOOLEAN
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.operations.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.operations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

composer.projects.locations.operations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}