BEGIN; SET ROLE capability_role; ALTER TABLE capability.cognitive_provider_instances ADD COLUMN IF NOT EXISTS billing_mode TEXT NOT NULL DEFAULT 'UNKNOWN', ADD COLUMN IF NOT EXISTS input_cost_micros BIGINT, ADD COLUMN IF NOT EXISTS output_cost_micros BIGINT, ADD COLUMN IF NOT EXISTS request_cost_micros BIGINT; ALTER TABLE capability.cognitive_provider_instances ADD COLUMN IF NOT EXISTS auth_mode TEXT NOT NULL DEFAULT 'NONE'; ALTER TABLE capability.cognitive_provider_instances DROP CONSTRAINT IF EXISTS cognitive_provider_instances_billing_mode_check, ADD CONSTRAINT cognitive_provider_instances_billing_mode_check CHECK (billing_mode IN ('UNKNOWN','FREE','PER_INPUT_UNIT','PER_OUTPUT_UNIT','PER_REQUEST')), DROP CONSTRAINT IF EXISTS cognitive_provider_instances_auth_mode_check, ADD CONSTRAINT cognitive_provider_instances_auth_mode_check CHECK (auth_mode IN ('NONE','API_KEY','BEARER','USERNAME_PASSWORD','OAUTH','SECRET_FILE')), DROP CONSTRAINT IF EXISTS cognitive_provider_instances_cost_check, ADD CONSTRAINT cognitive_provider_instances_cost_check CHECK ((input_cost_micros IS NULL OR input_cost_micros >= 0) AND (output_cost_micros IS NULL OR output_cost_micros >= 0) AND (request_cost_micros IS NULL OR request_cost_micros >= 0)); ALTER TABLE capability.cognitive_model_descriptors ADD COLUMN IF NOT EXISTS intelligence_score_millis BIGINT; ALTER TABLE capability.cognitive_model_descriptors DROP CONSTRAINT IF EXISTS cognitive_model_descriptors_intelligence_score_check, ADD CONSTRAINT cognitive_model_descriptors_intelligence_score_check CHECK (intelligence_score_millis IS NULL OR (intelligence_score_millis >= 0 AND intelligence_score_millis <= 1000)); RESET ROLE; COMMIT;