-
Notifications
You must be signed in to change notification settings - Fork 0
Cloud Azure Registration
| Operation ID | Description | ||||
|---|---|---|---|---|---|
|
Create an Azure registration for a tenant. | ||||
|
Delete existing legacy Azure subscriptions. | ||||
|
Deletes existing Azure registrations. | ||||
|
Retrieve script to create resources | ||||
|
Retrieve existing Azure registration for a tenant. | ||||
|
Trigger health check scan for Azure registrations | ||||
|
Update an existing Azure registration for a tenant. | ||||
|
Validate an Azure registration by checking service principal, role assignments and deployment stack | ||||
|
Download Azure deployment script (Terraform or Bicep) | ||||
WARNING
client_idandclient_secretare keyword arguments that contain your CrowdStrike API credentials. Please note that all examples below do not hard code these values. (These values are ingested as strings.)CrowdStrike does not recommend hard coding API credentials or customer identifiers within source code.
Retrieve existing Azure registration for a tenant.
get_registration
| Method | Route |
|---|---|
/cloud-security-registration-azure/entities/registrations/v1 |
- Consumes: application/json
- Produces: application/json
| Name | Service | Uber | Type | Data type | Description |
|---|---|---|---|---|---|
| tenant_id | query | string | Tenant ID | ||
| parameters | query | dictionary | Full query string parameters payload in JSON format. |
from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.get_registration(tenant_id="string")
print(response)from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.cloud_registration_azure_get_registration(tenant_id="string")
print(response)from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.command("cloud_registration_azure_get_registration", tenant_id="string")
print(response)Back to Table of Contents
Trigger health check scan for Azure registrations
health_check
| Method | Route |
|---|---|
/cloud-security-registration-azure/entities/registrations/healthcheck/v1 |
- Consumes: application/json
- Produces: application/json
| Name | Service | Uber | Type | Data type | Description |
|---|---|---|---|---|---|
| tenant_ids | query | string or list of strings | Azure tenant IDs | ||
| parameters | query | dictionary | Full query string parameters payload in JSON format. |
from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.health_check(tenant_ids=["string1", "string2"])
print(response)from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.cloud_registration_azure_trigger_health_check(tenant_ids=["string1", "string2"])
print(response)from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.command("cloud_registration_azure_trigger_health_check", tenant_ids=["string"])
print(response)Back to Table of Contents
Create an Azure registration for a tenant.
create_registration
| Method | Route |
|---|---|
/cloud-security-registration-azure/entities/registrations/v1 |
- Consumes: application/json
- Produces: application/json
| Name | Service | Uber | Type | Data type | Description |
|---|---|---|---|---|---|
| body | body | dictionary | Full body payload in JSON format. | ||
| account_type | body | string | Azure account type. | ||
| additional_features | body | list of dictionaries | Additional features. | ||
| additional_properties | body | dictionary | Additional properties. | ||
| api_client_key_id | body | string | Azure API client key ID. | ||
| api_client_key_type | body | string | Azure API client key type. | ||
| cs_infra_region | body | string | CrowdStrike infrastructure region. | ||
| cs_infra_subscription_id | body | string | CrowdStrike infrastructure subscription ID. | ||
| deployment_method | body | string | Deployment method. | ||
| deployment_stack_host_id | body | string | Azure deployment stack host ID. | ||
| deployment_stack_name | body | string | Azure deployment stack name. | ||
| dspm_regions | body | string or list of strings | DSPM regions. | ||
| environment | body | string | Azure environment. | ||
| event_hub_settings | body | list of dictionaries | Azure Event Hub settings. | ||
| management_group_ids | body | string or list of strings | Azure management group IDs. | ||
| microsoft_graph_permission_ids | body | string or list of strings | Microsoft Graph permission IDs. | ||
| microsoft_graph_permissions_ids_readonly | body | boolean | Flag indicating if Microsoft Graph permission IDs are read-only. | ||
| products | body | list of dictionaries | Products. | ||
| resource_name_prefix | body | string | Resource naming prefix. | ||
| resource_name_suffix | body | string | Resource naming suffix. | ||
| status | body | string | Registration status. | ||
| subscription_ids | body | string or list of strings | Azure subscription IDs. | ||
| tags | body | dictionary | Additional tags. | ||
| template_version | body | string | Deployment template version. | ||
| tenant_id | body | string | Azure tenant ID. |
from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
additional_features = [
{
"feature": "string",
"product": "string",
"subscription_ids": ["string"]
}
]
event_hub_settings = [
{
"cid": "string",
"consumer_group": "string",
"event_hub_id": "string",
"purpose": "string",
"tenant_id": "string"
}
]
products = [
{
"features": ["string"],
"product": "string"
}
]
tags = {
"key": "value"
}
response = falcon.create_registration(account_type="string",
additional_features=additional_features,
additional_properties={},
api_client_key_id="string",
api_client_key_type="string",
cs_infra_region="string",
cs_infra_subscription_id="string",
deployment_method="string",
deployment_stack_host_id="string",
deployment_stack_name="string",
dspm_regions=["string1", "string2"],
environment="string",
event_hub_settings=event_hub_settings,
management_group_ids=["string1", "string2"],
microsoft_graph_permission_ids=["string1", "string2"],
microsoft_graph_permissions_ids_readonly=boolean,
products=products,
resource_name_prefix="string",
resource_name_suffix="string",
status="string",
subscription_ids=["string1", "string2"],
tags=tags,
template_version="string",
tenant_id="string"
)
print(response)from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
additional_features = [
{
"feature": "string",
"product": "string",
"subscription_ids": ["string"]
}
]
event_hub_settings = [
{
"cid": "string",
"consumer_group": "string",
"event_hub_id": "string",
"purpose": "string",
"tenant_id": "string"
}
]
products = [
{
"features": ["string"],
"product": "string"
}
]
tags = {
"key": "value"
}
response = falcon.cloud_registration_azure_create_registration(account_type="string",
additional_features=additional_features,
additional_properties={},
api_client_key_id="string",
api_client_key_type="string",
cs_infra_region="string",
cs_infra_subscription_id="string",
deployment_method="string",
deployment_stack_host_id="string",
deployment_stack_name="string",
dspm_regions=["string1", "string2"],
environment="string",
event_hub_settings=event_hub_settings,
management_group_ids=["string1", "string2"],
microsoft_graph_permission_ids=["string1", "string2"],
microsoft_graph_permissions_ids_readonly=boolean,
products=products,
resource_name_prefix="string",
resource_name_suffix="string",
status="string",
subscription_ids=["string1", "string2"],
tags=tags,
template_version="string",
tenant_id="string"
)
print(response)from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
body = {
"resource": {
"account_type": "string",
"additional_features": [
{
"feature": "string",
"product": "string",
"subscription_ids": [
"string"
]
}
],
"additional_properties": {},
"api_client_key_id": "string",
"api_client_key_type": "string",
"cs_infra_region": "string",
"cs_infra_subscription_id": "string",
"deployment_method": "string",
"deployment_stack_host_id": "string",
"deployment_stack_name": "string",
"dspm_regions": [
"string"
],
"environment": "string",
"event_hub_settings": [
{
"cid": "string",
"consumer_group": "string",
"event_hub_id": "string",
"purpose": "string",
"tenant_id": "string"
}
],
"management_group_ids": [
"string"
],
"microsoft_graph_permission_ids": [
"string"
],
"microsoft_graph_permission_ids_readonly": boolean,
"products": [
{
"features": [
"string"
],
"product": "string"
}
],
"resource_name_prefix": "string",
"resource_name_suffix": "string",
"status": "string",
"subscription_ids": [
"string"
],
"tags": {
"key": "value"
},
"template_version": "string",
"tenant_id": "string"
}
}
response = falcon.command("cloud_registration_azure_create_registration", body=body)
print(response)Back to Table of Contents
Update an existing Azure registration for a tenant.
update_registration
| Method | Route |
|---|---|
/cloud-security-registration-azure/entities/registrations/v1 |
- Consumes: application/json
- Produces: application/json
| Name | Service | Uber | Type | Data type | Description |
|---|---|---|---|---|---|
| body | body | dictionary | Full body payload in JSON format. | ||
| account_type | body | string | Azure account type. | ||
| additional_features | body | list of dictionaries | Additional features. | ||
| additional_properties | body | dictionary | Additional properties. | ||
| api_client_key_id | body | string | Azure API client key ID. | ||
| api_client_key_type | body | string | Azure API client key type. | ||
| cs_infra_region | body | string | CrowdStrike infrastructure region. | ||
| cs_infra_subscription_id | body | string | CrowdStrike infrastructure subscription ID. | ||
| deployment_method | body | string | Deployment method. | ||
| deployment_stack_host_id | body | string | Azure deployment stack host ID. | ||
| deployment_stack_name | body | string | Azure deployment stack name. | ||
| dspm_regions | body | string or list of strings | DSPM regions. | ||
| environment | body | string | Azure environment. | ||
| event_hub_settings | body | list of dictionaries | Azure Event Hub settings. | ||
| management_group_ids | body | string or list of strings | Azure management group IDs. | ||
| microsoft_graph_permission_ids | body | string or list of strings | Microsoft Graph permission IDs. | ||
| microsoft_graph_permissions_ids_readonly | body | boolean | Flag indicating if Microsoft Graph permission IDs are read-only. | ||
| products | body | list of dictionaries | Products. | ||
| resource_name_prefix | body | string | Resource naming prefix. | ||
| resource_name_suffix | body | string | Resource naming suffix. | ||
| status | body | string | Registration status. | ||
| subscription_ids | body | string or list of strings | Azure subscription IDs. | ||
| tags | body | dictionary | Additional tags. | ||
| template_version | body | string | Deployment template version. | ||
| tenant_id | body | string | Azure tenant ID. |
from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
additional_features = [
{
"feature": "string",
"product": "string",
"subscription_ids": ["string"]
}
]
event_hub_settings = [
{
"cid": "string",
"consumer_group": "string",
"event_hub_id": "string",
"purpose": "string",
"tenant_id": "string"
}
]
products = [
{
"features": ["string"],
"product": "string"
}
]
tags = {
"key": "value"
}
response = falcon.update_registration(account_type="string",
additional_features=additional_features,
additional_properties={},
api_client_key_id="string",
api_client_key_type="string",
cs_infra_region="string",
cs_infra_subscription_id="string",
deployment_method="string",
deployment_stack_host_id="string",
deployment_stack_name="string",
dspm_regions=["string1", "string2"],
environment="string",
event_hub_settings=event_hub_settings,
management_group_ids=["string1", "string2"],
microsoft_graph_permission_ids=["string1", "string2"],
microsoft_graph_permissions_ids_readonly=boolean,
products=products,
resource_name_prefix="string",
resource_name_suffix="string",
status="string",
subscription_ids=["string1", "string2"],
tags=tags,
template_version="string",
tenant_id="string"
)
print(response)from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
additional_features = [
{
"feature": "string",
"product": "string",
"subscription_ids": ["string"]
}
]
event_hub_settings = [
{
"cid": "string",
"consumer_group": "string",
"event_hub_id": "string",
"purpose": "string",
"tenant_id": "string"
}
]
products = [
{
"features": ["string"],
"product": "string"
}
]
tags = {
"key": "value"
}
response = falcon.cloud_registration_azure_update_registration(account_type="string",
additional_features=additional_features,
additional_properties={},
api_client_key_id="string",
api_client_key_type="string",
cs_infra_region="string",
cs_infra_subscription_id="string",
deployment_method="string",
deployment_stack_host_id="string",
deployment_stack_name="string",
dspm_regions=["string1", "string2"],
environment="string",
event_hub_settings=event_hub_settings,
management_group_ids=["string1", "string2"],
microsoft_graph_permission_ids=["string1", "string2"],
microsoft_graph_permissions_ids_readonly=boolean,
products=products,
resource_name_prefix="string",
resource_name_suffix="string",
status="string",
subscription_ids=["string1", "string2"],
tags=tags,
template_version="string",
tenant_id="string"
)
print(response)from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
body = {
"resource": {
"account_type": "string",
"additional_features": [
{
"feature": "string",
"product": "string",
"subscription_ids": [
"string"
]
}
],
"additional_properties": {},
"api_client_key_id": "string",
"api_client_key_type": "string",
"cs_infra_region": "string",
"cs_infra_subscription_id": "string",
"deployment_method": "string",
"deployment_stack_host_id": "string",
"deployment_stack_name": "string",
"dspm_regions": [
"string"
],
"environment": "string",
"event_hub_settings": [
{
"cid": "string",
"consumer_group": "string",
"event_hub_id": "string",
"purpose": "string",
"tenant_id": "string"
}
],
"management_group_ids": [
"string"
],
"microsoft_graph_permission_ids": [
"string"
],
"microsoft_graph_permission_ids_readonly": boolean,
"products": [
{
"features": [
"string"
],
"product": "string"
}
],
"resource_name_prefix": "string",
"resource_name_suffix": "string",
"status": "string",
"subscription_ids": [
"string"
],
"tags": {
"key": "value"
},
"template_version": "string",
"tenant_id": "string"
}
}
response = falcon.command("cloud_registration_azure_update_registration", body=body)
print(response)Back to Table of Contents
Delete existing legacy Azure subscriptions.
delete_legacy_subscription
| Method | Route |
|---|---|
/cloud-security-registration-azure/entities/accounts/legacy/v1 |
- Consumes: application/json
- Produces: application/json
| Name | Service | Uber | Type | Data type | Description |
|---|---|---|---|---|---|
| body | body | dictionary | Full body payload in JSON format. | ||
| retain_client | body | boolean | Choose to retain client. | ||
| subscription_id | body | string | Azure subscription IDs. | ||
| tenant_id | body | string or list of strings | Azure tenant ID. |
from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.delete_legacy_subscription(retain_client=boolean,
subscription_id="string",
tenant_id="string"
)
print(response)from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.cloud_registration_azure_delete_legacy_subscription(retain_client=boolean,
subscription_id="string",
tenant_id="string"
)
print(response)from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
body = {
"resources": [
{
"retain_client": boolean,
"subscription_id": "string",
"tenant_id": "string"
}
]
}
response = falcon.command("cloud_registration_azure_delete_legacy_subscription", body=body)
print(response)Back to Table of Contents
Validate an Azure registration by checking service principal, role assignments and deployment stack (if the deployment method is Bicep)
validate_registration
| Method | Route |
|---|---|
/cloud-security-registration-azure/entities/registrations/validate/v1 |
- Consumes: application/json
- Produces: application/json
| Name | Service | Uber | Type | Data type | Description |
|---|---|---|---|---|---|
| tenant_id | query | string | Azure tenant ID to be validated | ||
| stack_name | query | string | Azure deployment stack name to be validated | ||
| parameters | query | dictionary | Full query string parameters payload in JSON format. |
from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.validate_registration(tenant_id="string",
stack_name="string"
)
print(response)from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.cloud_registration_azure_validate_registration(tenant_id="string",
stack_name="string"
)
print(response)from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.command("cloud_registration_azure_validate_registration",
tenant_id="string",
stack_name="string"
)
print(response)Back to Table of Contents
Deletes existing Azure registrations.
delete_registration
| Method | Route |
|---|---|
/cloud-security-registration-azure/entities/registrations/v1 |
- Consumes: application/json
- Produces: application/json
| Name | Service | Uber | Type | Data type | Description |
|---|---|---|---|---|---|
| tenant_ids | query | string or list of strings | Azure tenant IDs | ||
| parameters | query | dictionary | Full query string parameters payload in JSON format. |
from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.delete_registration(tenant_ids=["string1", "string2"])
print(response)from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.cloud_registration_azure_delete_registration(tenant_ids=["string1", "string2"])
print(response)from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.command("cloud_registration_azure_delete_registration", tenant_ids=["string1", "string2"])
print(response)Back to Table of Contents
Download Azure deployment script (Terraform or Bicep)
deployment_script
| Method | Route |
|---|---|
/cloud-security-registration-azure/entities/scripts/v1 |
- Consumes: application/json
- Produces: application/json
| Name | Service | Uber | Type | Data type | Description |
|---|---|---|---|---|---|
| tenant_id | query | string | Azure tenant ID | ||
| parameters | query | dictionary | Full query string parameters payload in JSON format. |
from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.deployment_script(tenant_id="string")
print(response)from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.download_azure_script(tenant_id="string")
print(response)from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.command("download_azure_script", tenant_id="string")
print(response)Back to Table of Contents
Retrieve script to create resources
download_script
| Method | Route |
|---|---|
/cloud-security-registration-azure/entities/scripts/v1 |
- Consumes: application/json
- Produces: application/json
| Name | Service | Uber | Type | Data type | Description |
|---|---|---|---|---|---|
| body | body | dictionary | Full body payload in JSON format. | ||
| tenant_id | body | string | Azure tenant ID. |
from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.download_script(tenant_id="string")
print(response)from falconpy import CloudAzureRegistration
# Do not hardcode API credentials!
falcon = CloudAzureRegistration(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.cloud_registration_azure_download_script(tenant_id="string")
print(response)from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
body_payload = {
"resources": [
{
"tenantId": "string"
}
]
}
response = falcon.command("cloud_registration_azure_download_script", body=body_payload)
print(response)Back to Table of Contents

- Home
- Discussions Board
- Glossary of Terms
- Installation, Upgrades and Removal
- Samples Collection
- Using FalconPy
- API Operations
-
Service Collections
- Admission Control Policies
- Alerts
- API Integrations
- ASPM
- CAO Hunting
- Case Management
- Certificate Based Exclusions
- Cloud AWS Registration
- Cloud Azure Registration
- Cloud GCP Registration
- Cloud OCI Registration
- Cloud Policies
- Cloud Connect AWS (deprecated)
- Cloud Security Assets
- Cloud Security
- Cloud Security Compliance
- Cloud Security Detections
- Cloud Snapshots
- Configuration Assessment
- Configuration Assessment Evaluation Logic
- Container Alerts
- Container Detections
- Container Image Compliance
- Container Images
- Container Packages
- Container Vulnerabilities
- Content Update Policies
- Correlation Rules
- Correlation Rules Admin
- CSPM Registration
- Custom IOAs
- Custom Storage
- D4C Registration (deprecated)
- Data Protection Configuration
- DataScanner (deprecated)
- Delivery Settings
- Deployments
- Detects
- Device Content
- Device Control Policies
- Discover
- Downloads
- Drift Indicators
- Event Streams
- Exposure Management
- FaaS Execution
- Falcon Complete Dashboard
- Falcon Container
- Falcon Intelligence Sandbox
- FDR
- FileVantage
- Firewall Management
- Firewall Policies
- Foundry LogScale
- Host Group
- Host Migration
- Hosts
- Identity Protection
- Image Assessment Policies
- Incidents
- Installation Tokens
- Intel
- Intelligence Feeds
- Intelligence Indicator Graph
- IOA Exclusions
- IOC
- IOCs (deprecated)
- IT Automation
- Kubernetes Container Compliance
- Kubernetes Protection
- MalQuery
- Message Center
- ML Exclusions
- Mobile Enrollment
- MSSP (Flight Control)
- NGSIEM
- OAuth2
- ODS (On Demand Scan)
- Prevention Policy
- Quarantine
- Quick Scan
- Quick Scan Pro
- Real Time Response
- Real Time Response Admin
- Real Time Response Audit
- Recon
- Report Executions
- Response Policies
- Sample Uploads
- SaaS Security
- Scheduled Reports
- Sensor Download
- Sensor Update Policy
- Sensor Usage
- Sensor Visibility Exclusions
- Serverless Exports
- Spotlight Evaluation Logic
- Spotlight Vulnerabilities
- Spotlight Vulnerability Metadata
- Tailored Intelligence
- ThreatGraph
- Unidentified Containers
- User Management
- Workflows
- Zero Trust Assessment
- Documentation Support
-
CrowdStrike SDKs
- Crimson Falcon - Ruby
- FalconPy - Python 3
- FalconJS - Javascript
- goFalcon - Go
- PSFalcon - Powershell
- Rusty Falcon - Rust
