# Ownership ## Get ownership challenge `logpush.ownership.create(OwnershipCreateParams**kwargs) -> OwnershipCreateResponse` **post** `/{accounts_or_zones}/{account_or_zone_id}/logpush/ownership` Gets a new ownership challenge sent to your destination. ### Parameters - `destination_conf: str` Uniquely identifies a resource (such as an s3 bucket) where data. will be pushed. Additional configuration parameters supported by the destination may be included. - `account_id: Optional[str]` The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `zone_id: Optional[str]` The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. ### Returns - `class OwnershipCreateResponse: …` - `filename: Optional[str]` - `message: Optional[str]` - `valid: Optional[bool]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) ownership = client.logpush.ownership.create( destination_conf="s3://mybucket/logs?region=us-west-2", account_id="account_id", ) print(ownership.valid) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "filename": "logs/challenge-filename.txt", "message": "", "valid": true } } ``` ## Validate ownership challenge `logpush.ownership.validate(OwnershipValidateParams**kwargs) -> OwnershipValidation` **post** `/{accounts_or_zones}/{account_or_zone_id}/logpush/ownership/validate` Validates ownership challenge of the destination. ### Parameters - `destination_conf: str` Uniquely identifies a resource (such as an s3 bucket) where data. will be pushed. Additional configuration parameters supported by the destination may be included. - `ownership_challenge: str` Ownership challenge token to prove destination ownership. - `account_id: Optional[str]` The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `zone_id: Optional[str]` The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. ### Returns - `class OwnershipValidation: …` - `valid: Optional[bool]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) ownership_validation = client.logpush.ownership.validate( destination_conf="s3://mybucket/logs?region=us-west-2", ownership_challenge="00000000000000000000", account_id="account_id", ) print(ownership_validation.valid) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "valid": true } } ``` ## Domain Types ### Ownership Validation - `class OwnershipValidation: …` - `valid: Optional[bool]` ### Ownership Create Response - `class OwnershipCreateResponse: …` - `filename: Optional[str]` - `message: Optional[str]` - `valid: Optional[bool]`