Description
📝 Description
When I am automating and managing data analytics infrastructure using Microsoft Fabric across multiple environments, I want to get details of Apache Airflow Job as code in Terraform.
To consistently and securely manage Apache Airflow Job as code in Terraform while automating and managing data analytics infrastructure using Microsoft Fabric across multiple environments.
🔬 Details / References
- Data Source Name:
fabric_apache
- API documentation:
- Get Apache Ariflow Job: https://learn.microsoft.com/en-us/rest/api/fabric/apacheairflowjob/items/get-apache-airflow-job?tabs=HTTP
- Get Apache Airflow Job Definition: https://learn.microsoft.com/en-us/rest/api/fabric/apacheairflowjob/items/get-apache-airflow-job-definition?tabs=HTTP
- List Apache Airflow Jobs: https://learn.microsoft.com/en-us/rest/api/fabric/apacheairflowjob/items/list-apache-airflow-jobs?tabs=HTTP
- Estimated complexity/effort: easy
- Related resources/data-sources:
- Create Apache Airflow Job: https://learn.microsoft.com/en-us/rest/api/fabric/apacheairflowjob/items/create-apache-airflow-job?tabs=HTTP
- Delete Apache Airflow Job: https://learn.microsoft.com/en-us/rest/api/fabric/apacheairflowjob/items/delete-apache-airflow-job?tabs=HTTP
- Update Apache Airflow Job: https://learn.microsoft.com/en-us/rest/api/fabric/apacheairflowjob/items/update-apache-airflow-job?tabs=HTTP
- Update Apache Airflow Job Definition: https://learn.microsoft.com/en-us/rest/api/fabric/apacheairflowjob/items/update-apache-airflow-job-definition?tabs=HTTP
🚧 Potential Terraform Configuration / Desired Solution
Get item details by name
data "fabric_apache_airflow_job" "example_by_name" {
display_name = "example"
workspace_id = "00000000-0000-0000-0000-000000000000"
}
Get item details by id
data "fabric_apache_airflow_job" "example_by_id" {
id = "11111111-1111-1111-1111-111111111111"
workspace_id = "00000000-0000-0000-0000-000000000000"
}
Get item details with definition
Examples uses id
but display_name
can be used as well
data "fabric_apache_airflow_job" "example_definition" {
id = "11111111-1111-1111-1111-111111111111"
workspace_id = "00000000-0000-0000-0000-000000000000"
output_definition = true
}
Access the content of the definition with JSONPath expression
output "example_definition_content_jsonpath" {
value = provider::fabric::content_decode(data.fabric_apache_airflow_job.example_definition.definition["apache.json"].content)
}
Access the content of the definition as JSON object
output "example_definition_content_object" {
value = provider::fabric::content_decode(data.fabric_apache_airflow_job.example_definition.definition["apache.json"].content)
}
This is an invalid data source
Do not specify id
and display_name
in the same data source block
data "fabric_apache_airflow_job" "example" {
display_name = "example"
id = "11111111-1111-1111-1111-111111111111"
workspace_id = "00000000-0000-0000-0000-000000000000"
}
📎 Additional context
No response
☑️ Acceptance Criteria
No response
✅ Definition of Done
- Data Transfer Objects (DTOs)
- Data-Source Implementation
- Data-Source Added to Provider
- Unit Tests for Happy path
- Unit Tests for Error path
- Acceptance Tests
- Example in the ./examples folder
- Schema documentation in code
- Updated auto-generated provider docs with
task docs
🔰 Code of Conduct
- I agree to follow this project's Code of Conduct.