{ "info": { "author": "Pierre Cardona", "author_email": "pierre@data-fullstack.com", "bugtrack_url": null, "classifiers": [ "Framework :: Apache Airflow", "Framework :: Apache Airflow :: Provider" ], "description": "

\n \n \"Airflow\"\n \n \n \"BigQuery\n \n

\n

\n Airflow BigQuery Reservation Provider\n

\n
\n\n[![PyPI version](https://badge.fury.io/py/airflow-provider-bigquery-reservation.svg)](https://badge.fury.io/py/airflow-provider-bigquery-reservation)\n[![codecov](https://codecov.io/gh/PierreC1024/airflow-provider-bigquery-reservation/branch/main/graph/badge.svg?token=VQ18VBAGNO)](https://codecov.io/gh/PierreC1024/airflow-provider-bigquery-reservation)\n![Github Action Test](https://github.com/PierreC1024/airflow-provider-bigquery-reservation/actions/workflows/test.yaml/badge.svg)\n\n> **Warning**\n> This package is a pre-released of the official apache-airflow-providers-google package. All of these operators will be integrated to the official package, soon.\n\nThis repository provides an Apache Airflow provider based on [BigQuery Reservation API](https://cloud.google.com/python/docs/reference/bigqueryreservation/latest).\n\n## Airflow Operators\n* `BigQueryReservationCreateOperator`: Buy BigQuery slots (commitments) and assign them to a GCP project (reserve and assign).\n* `BigQueryReservationDeleteOperator`: Delete BigQuery commitments and remove associated ressources (rservation and assignment).\n* `BigQueryBiEngineReservationCreateOperator`: Create or Update a BI engine reservation.\n* `BigQueryBiEngineReservationDeleteOperator`: Delete or Update a BI engine reservation.\n\nYou could find DAG samples [here](https://github.com/PierreC1024/airflow-provider-bigquery-reservation/tree/main/airflow_provider_bigquery_reservation/example_dags).\n\n### Requirements\n\n* A [Google Cloud connection](https://airflow.apache.org/docs/apache-airflow-providers-google/stable/connections/gcp.html) has to be defined.\nBy default, all hooks and operators use `google_cloud_default`.\n* This connection requires the following roles on the Google Cloud project(s) used in these operators:\n * [BigQuery Resource Admin](https://cloud.google.com/iam/docs/understanding-roles#bigquery.resourceAdmin)\n * [BigQuery Job User](https://cloud.google.com/iam/docs/understanding-roles#bigquery.jobUser) - *Required for `BigQueryReservationCreateOperator` because of the reservation attachment check.*\n\n*Defining a new dedicated connection and custom GCP role could be good practices to respect the principle of least privilege.*\n\n## How to install\n\n```bash\npip install --user airflow-provider-bigquery-reservation\n```\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/PierreC1024/airflow-provider-bigquery-reservation/archive/refs/tags/0.2.0.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/PierreC1024/airflow-provider-bigquery-reservation", "keywords": "airflow,bigquery", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "airflow-provider-bigquery-reservation", "package_url": "https://pypi.org/project/airflow-provider-bigquery-reservation/", "platform": null, "project_url": "https://pypi.org/project/airflow-provider-bigquery-reservation/", "project_urls": { "Download": "https://github.com/PierreC1024/airflow-provider-bigquery-reservation/archive/refs/tags/0.2.0.tar.gz", "Homepage": "https://github.com/PierreC1024/airflow-provider-bigquery-reservation" }, "release_url": "https://pypi.org/project/airflow-provider-bigquery-reservation/1.1.1/", "requires_dist": [ "apache-airflow (>=2.3.0)", "google-cloud-bigquery-reservation (>=1.0.0)", "google-cloud-bigquery (>=2.0.0)" ], "requires_python": ">=3.7", "summary": "An Apache Airflow provider concerning BigQuery reservation.", "version": "1.1.1", "yanked": false, "yanked_reason": null }, "last_serial": 17428553, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "blake2b_256": "ed20b9fe4cf1c0b7aa6d6857e40b5baad6228a9b07db9b672f3a5977d9d593e7", "md5": "b0c238d846223c578f4d462258fc9e56", "sha256": "6bc7d0ec460a23119dbaea71df3fdeb1c731a23d0fbfbfacc97e3ebb2c7f860f" }, "downloads": -1, "filename": "airflow-provider-bigquery-reservation-0.0.1.tar.gz", "has_sig": false, "md5_digest": "b0c238d846223c578f4d462258fc9e56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12066, "upload_time": "2023-02-14T12:55:01", "upload_time_iso_8601": "2023-02-14T12:55:01.599483Z", "url": "https://files.pythonhosted.org/packages/ed/20/b9fe4cf1c0b7aa6d6857e40b5baad6228a9b07db9b672f3a5977d9d593e7/airflow-provider-bigquery-reservation-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "blake2b_256": "e20525419ba4388c2189e2dfb0f1bef7818da3c9a1e5a0f633304620279aeab9", "md5": "a1defff7ccd813652d89fcb68ffe6bf8", "sha256": "303ffcada5662e120f71d5d32f5e4e2f3d5390d9cbe782461bbda56df820b656" }, "downloads": -1, "filename": "airflow_provider_bigquery_reservation-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a1defff7ccd813652d89fcb68ffe6bf8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.8", "size": 27205, "upload_time": "2023-02-22T08:21:56", "upload_time_iso_8601": "2023-02-22T08:21:56.421219Z", "url": "https://files.pythonhosted.org/packages/e2/05/25419ba4388c2189e2dfb0f1bef7818da3c9a1e5a0f633304620279aeab9/airflow_provider_bigquery_reservation-0.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "blake2b_256": "3c9ec957b227bd04452366f644ee104b2d83fddaf094c3309b5cce6590f11da7", "md5": "9dfe193337084c45b04f191a583441fa", "sha256": "2a59f21eb10fa476af9e27ca1fa9fa37a997377ab5e7881500e0c3f5426ffaec" }, "downloads": -1, "filename": "airflow_provider_bigquery_reservation-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9dfe193337084c45b04f191a583441fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.8", "size": 27616, "upload_time": "2023-02-23T15:15:56", "upload_time_iso_8601": "2023-02-23T15:15:56.658862Z", "url": "https://files.pythonhosted.org/packages/3c/9e/c957b227bd04452366f644ee104b2d83fddaf094c3309b5cce6590f11da7/airflow_provider_bigquery_reservation-0.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "blake2b_256": "8f08ff2334bdf1959bf0053932d8b8745fe2a3f048a0c82dd450f0ebf3ebd7ed", "md5": "5391aaa8587862dc2713feb4c52d8072", "sha256": "8c617e1f9a47ecf76c219f95c5939f21b76660a0692e9583637a0da2a6c39181" }, "downloads": -1, "filename": "airflow_provider_bigquery_reservation-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5391aaa8587862dc2713feb4c52d8072", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 15462, "upload_time": "2023-03-03T16:17:55", "upload_time_iso_8601": "2023-03-03T16:17:55.002432Z", "url": "https://files.pythonhosted.org/packages/8f/08/ff2334bdf1959bf0053932d8b8745fe2a3f048a0c82dd450f0ebf3ebd7ed/airflow_provider_bigquery_reservation-1.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "blake2b_256": "8ac169ecc518dc11778c15d0143ce4c1122e829dc89d9e8f0280078125acfea3", "md5": "a8ae3c5321eefa8ec68aec916de76486", "sha256": "95eb4915ab3a405cbf5d0fce4373357d8d79606d509afa36ef28cdc885d47b88" }, "downloads": -1, "filename": "airflow_provider_bigquery_reservation-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a8ae3c5321eefa8ec68aec916de76486", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 15780, "upload_time": "2023-03-04T12:30:06", "upload_time_iso_8601": "2023-03-04T12:30:06.903489Z", "url": "https://files.pythonhosted.org/packages/8a/c1/69ecc518dc11778c15d0143ce4c1122e829dc89d9e8f0280078125acfea3/airflow_provider_bigquery_reservation-1.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.2": [ { "comment_text": "", "digests": { "blake2b_256": "a9f759c44bbc358db90d976dbcb91f5b1fe87362c1155c20c2d76be2c2ee6d62", "md5": "ae7965e4206775130c37b529f823452f", "sha256": "c85bef13d85a5ee461bd323698784bc6cab08469c790c76831721f5bd7cb7b2e" }, "downloads": -1, "filename": "airflow_provider_bigquery_reservation-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ae7965e4206775130c37b529f823452f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 15778, "upload_time": "2023-03-15T09:18:44", "upload_time_iso_8601": "2023-03-15T09:18:44.938132Z", "url": "https://files.pythonhosted.org/packages/a9/f7/59c44bbc358db90d976dbcb91f5b1fe87362c1155c20c2d76be2c2ee6d62/airflow_provider_bigquery_reservation-1.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "blake2b_256": "9c08821b81b60750b4156c4d74d923adda2e3a046954819445e05e08b52ecc45", "md5": "1282e0529b8cd4bac9f342c5f7e50caf", "sha256": "6fbbcc080cdb14f204505fb9ba8da886c701467224fb869dd1a624d644253446" }, "downloads": -1, "filename": "airflow_provider_bigquery_reservation-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1282e0529b8cd4bac9f342c5f7e50caf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 16056, "upload_time": "2023-03-23T10:17:15", "upload_time_iso_8601": "2023-03-23T10:17:15.227914Z", "url": "https://files.pythonhosted.org/packages/9c/08/821b81b60750b4156c4d74d923adda2e3a046954819445e05e08b52ecc45/airflow_provider_bigquery_reservation-1.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.1": [ { "comment_text": "", "digests": { "blake2b_256": "6ce41e0fb487177f6e84b2299a5de1bf00d2b266325de8b82cf3f71140dac9db", "md5": "4a4b25aeabf1dfa8fb8ffb69b0f53086", "sha256": "9b5cacba58eeb927947d9bcb66900002d2358f95965a26116a50164e0be5e053" }, "downloads": -1, "filename": "airflow_provider_bigquery_reservation-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4a4b25aeabf1dfa8fb8ffb69b0f53086", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 16065, "upload_time": "2023-03-24T08:25:21", "upload_time_iso_8601": "2023-03-24T08:25:21.401796Z", "url": "https://files.pythonhosted.org/packages/6c/e4/1e0fb487177f6e84b2299a5de1bf00d2b266325de8b82cf3f71140dac9db/airflow_provider_bigquery_reservation-1.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "blake2b_256": "6ce41e0fb487177f6e84b2299a5de1bf00d2b266325de8b82cf3f71140dac9db", "md5": "4a4b25aeabf1dfa8fb8ffb69b0f53086", "sha256": "9b5cacba58eeb927947d9bcb66900002d2358f95965a26116a50164e0be5e053" }, "downloads": -1, "filename": "airflow_provider_bigquery_reservation-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4a4b25aeabf1dfa8fb8ffb69b0f53086", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 16065, "upload_time": "2023-03-24T08:25:21", "upload_time_iso_8601": "2023-03-24T08:25:21.401796Z", "url": "https://files.pythonhosted.org/packages/6c/e4/1e0fb487177f6e84b2299a5de1bf00d2b266325de8b82cf3f71140dac9db/airflow_provider_bigquery_reservation-1.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }