Skip to content

Commit

Permalink
add grant_on_all docstring (#142)
Browse files Browse the repository at this point in the history
  • Loading branch information
rcohngru-ab-carval authored Nov 6, 2024
1 parent 83efcb6 commit bd4403c
Show file tree
Hide file tree
Showing 3 changed files with 119 additions and 13 deletions.
1 change: 1 addition & 0 deletions docs/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
* [GenericSecret](resources/generic_secret.md)
* [GlueCatalogIntegration](resources/glue_catalog_integration.md)
* [Grant](resources/grant.md)
* [GrantOnAll](resources/grant_on_all.md)
* [HybridTable](resources/hybrid_table.md)
* [ImageRepository](resources/image_repository.md)
* [InternalStage](resources/internal_stage.md)
Expand Down
62 changes: 62 additions & 0 deletions docs/resources/grant_on_all.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
description: >-
---

# GrantOnAll

[Snowflake Documentation](https://docs.snowflake.com/en/sql-reference/sql/grant-privilege)

Represents a grant of privileges on all resources of a specified type to a role in Snowflake.


## Examples

### Python

```python
# Schema Privs:
grant_on_all = GrantOnAll(
priv="CREATE TABLE",
on_all_schemas_in_database="somedb",
to="somerole",
)
grant_on_all = GrantOnAll(
priv="CREATE VIEW",
on_all_schemas_in=Database(name="somedb"),
to="somerole",
)
# Schema Object Privs:
grant_on_all = GrantOnAll(
priv="SELECT",
on_all_tables_in_schema="someschema",
to="somerole",
)
grant_on_all = GrantOnAll(
priv="SELECT",
on_all_views_in_database="somedb",
to="somerole",
)
```


### YAML

```yaml
grants_on_all:
- priv: SELECT
on_all_tables_in_schema: someschema
to: somerole
```
## Fields
* `priv` (string, required) - The privilege to grant. Examples include 'SELECT', 'INSERT', 'CREATE TABLE'.
* `on_type` (string or [ResourceType](resource_type.md), required) - The type of resource on which the privileges are granted.
* `in_type` (string or [ResourceType](resource_type.md), required) - The type of container resource in which the privilege is granted.
* `in_name` (string, required) - The name of the container resource in which the privilege is granted.
* `to` (string or [Role](role.md), required) - The role to which the privileges are granted.
* `grant_option` (bool) - Specifies whether the grantee can grant the privileges to other roles. Defaults to False.


69 changes: 56 additions & 13 deletions titan/resources/grant.py
Original file line number Diff line number Diff line change
Expand Up @@ -435,6 +435,62 @@ def __post_init__(self):


class GrantOnAll(Resource):
"""
Description:
Represents a grant of privileges on all resources of a specified type to a role in Snowflake.
Snowflake Docs:
https://docs.snowflake.com/en/sql-reference/sql/grant-privilege
Fields:
priv (string, required): The privilege to grant. Examples include 'SELECT', 'INSERT', 'CREATE TABLE'.
on_type (string or ResourceType, required): The type of resource on which the privileges are granted.
in_type (string or ResourceType, required): The type of container resource in which the privilege is granted.
in_name (string, required): The name of the container resource in which the privilege is granted.
to (string or Role, required): The role to which the privileges are granted.
grant_option (bool): Specifies whether the grantee can grant the privileges to other roles. Defaults to False.
Python:
```python
# Schema Privs:
grant_on_all = GrantOnAll(
priv="CREATE TABLE",
on_all_schemas_in_database="somedb",
to="somerole",
)
grant_on_all = GrantOnAll(
priv="CREATE VIEW",
on_all_schemas_in=Database(name="somedb"),
to="somerole",
)
# Schema Object Privs:
grant_on_all = GrantOnAll(
priv="SELECT",
on_all_tables_in_schema="someschema",
to="somerole",
)
grant_on_all = GrantOnAll(
priv="SELECT",
on_all_views_in_database="somedb",
to="somerole",
)
```
Yaml:
```yaml
grants_on_all:
- priv: SELECT
on_all_tables_in_schema: someschema
to: somerole
```
"""

resource_type = ResourceType.GRANT_ON_ALL
props = Props(
priv=IdentifierProp("priv", eq=False),
Expand All @@ -454,19 +510,6 @@ def __init__(
grant_option: bool = False,
**kwargs,
):
"""
Usage
-----
Schema Privs:
>>> GrantOnAll(priv="CREATE TABLE", on_all_schemas_in_database="somedb", to="somerole")
>>> GrantOnAll(priv="CREATE VIEW", on_all_schemas_in=Database(name="somedb"), to="somerole")
Schema Object Privs:
>>> GrantOnAll(priv="SELECT", on_all_tables_in_schema="sch", to="somerole")
>>> GrantOnAll(priv="SELECT", on_all_views_in_database="somedb", to="somerole")
"""
on_type = kwargs.pop("on_type", None)
in_type = kwargs.pop("in_type", None)
in_name = kwargs.pop("in_name", None)
Expand Down

0 comments on commit bd4403c

Please sign in to comment.