diff --git a/packages/php-storage-driver-common/generated/GPBMetadata/Proto/Workspace.php b/packages/php-storage-driver-common/generated/GPBMetadata/Proto/Workspace.php
index 63c1318af..adf7470d8 100644
--- a/packages/php-storage-driver-common/generated/GPBMetadata/Proto/Workspace.php
+++ b/packages/php-storage-driver-common/generated/GPBMetadata/Proto/Workspace.php
@@ -18,8 +18,11 @@ public static function initOnce() {
\GPBMetadata\Proto\Table::initOnce();
$pool->internalAddGeneratedFile(
'
-ì
-proto/workspace.proto\'keboola.storageDriver.command.workspaceproto/table.proto"“
+Î
+proto/workspace.proto\'keboola.storageDriver.command.workspaceproto/table.proto"3
+DirectGrantTable
+path (
+ tableName ( "é
CreateWorkspaceCommand
stackPrefix (
projectId (
@@ -31,7 +34,8 @@ public static function initOnce() {
projectReadOnlyRoleName ( !
devBranchReadOnlyRoleName
( "
-meta (2.google.protobuf.AnyD
+meta (2.google.protobuf.AnyT
+directGrantTables (29.keboola.storageDriver.command.workspace.DirectGrantTableD
CreateWorkspaceTeradataMeta
permSpace (
@@ -42,12 +46,13 @@ public static function initOnce() {
workspaceUserName (
workspaceRoleName (
workspacePassword (
-workspaceObjectName ( "|
+workspaceObjectName ( "Ò
DropWorkspaceCommand
workspaceUserName (
workspaceRoleName (
workspaceObjectName (
- isCascade ("e
+ isCascade (T
+directGrantTables (29.keboola.storageDriver.command.workspace.DirectGrantTable"e
ClearWorkspaceCommand
workspaceObjectName (
ignoreErrors (
diff --git a/packages/php-storage-driver-common/generated/Keboola/StorageDriver/Command/Workspace/CreateWorkspaceCommand.php b/packages/php-storage-driver-common/generated/Keboola/StorageDriver/Command/Workspace/CreateWorkspaceCommand.php
index 111603a1c..822ce4fd0 100644
--- a/packages/php-storage-driver-common/generated/Keboola/StorageDriver/Command/Workspace/CreateWorkspaceCommand.php
+++ b/packages/php-storage-driver-common/generated/Keboola/StorageDriver/Command/Workspace/CreateWorkspaceCommand.php
@@ -82,6 +82,12 @@ class CreateWorkspaceCommand extends \Google\Protobuf\Internal\Message
* Generated from protobuf field .google.protobuf.Any meta = 7;
*/
protected $meta = null;
+ /**
+ * tables in storage buckets to which workspace should have write access (table-level IAM)
+ *
+ * Generated from protobuf field repeated .keboola.storageDriver.command.workspace.DirectGrantTable directGrantTables = 11;
+ */
+ private $directGrantTables;
/**
* Constructor.
@@ -109,6 +115,8 @@ class CreateWorkspaceCommand extends \Google\Protobuf\Internal\Message
* backend dev branch read only role associated with project, role has read access for all buckets in project and containing tables including bucket in dev branch
* @type \Google\Protobuf\Any $meta
* metadata specific for each backend
+ * @type array<\Keboola\StorageDriver\Command\Workspace\DirectGrantTable>|\Google\Protobuf\Internal\RepeatedField $directGrantTables
+ * tables in storage buckets to which workspace should have write access (table-level IAM)
* }
*/
public function __construct($data = NULL) {
@@ -386,5 +394,31 @@ public function setMeta($var)
return $this;
}
+ /**
+ * tables in storage buckets to which workspace should have write access (table-level IAM)
+ *
+ * Generated from protobuf field repeated .keboola.storageDriver.command.workspace.DirectGrantTable directGrantTables = 11;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDirectGrantTables()
+ {
+ return $this->directGrantTables;
+ }
+
+ /**
+ * tables in storage buckets to which workspace should have write access (table-level IAM)
+ *
+ * Generated from protobuf field repeated .keboola.storageDriver.command.workspace.DirectGrantTable directGrantTables = 11;
+ * @param array<\Keboola\StorageDriver\Command\Workspace\DirectGrantTable>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDirectGrantTables($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Keboola\StorageDriver\Command\Workspace\DirectGrantTable::class);
+ $this->directGrantTables = $arr;
+
+ return $this;
+ }
+
}
diff --git a/packages/php-storage-driver-common/generated/Keboola/StorageDriver/Command/Workspace/DirectGrantTable.php b/packages/php-storage-driver-common/generated/Keboola/StorageDriver/Command/Workspace/DirectGrantTable.php
new file mode 100644
index 000000000..5989d4cb7
--- /dev/null
+++ b/packages/php-storage-driver-common/generated/Keboola/StorageDriver/Command/Workspace/DirectGrantTable.php
@@ -0,0 +1,102 @@
+keboola.storageDriver.command.workspace.DirectGrantTable
+ */
+class DirectGrantTable extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * path where table exists (e.g. dataset/schema)
+ *
+ * Generated from protobuf field repeated string path = 1;
+ */
+ private $path;
+ /**
+ * table name within the dataset
+ *
+ * Generated from protobuf field string tableName = 2;
+ */
+ protected $tableName = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $path
+ * path where table exists (e.g. dataset/schema)
+ * @type string $tableName
+ * table name within the dataset
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Proto\Workspace::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * path where table exists (e.g. dataset/schema)
+ *
+ * Generated from protobuf field repeated string path = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPath()
+ {
+ return $this->path;
+ }
+
+ /**
+ * path where table exists (e.g. dataset/schema)
+ *
+ * Generated from protobuf field repeated string path = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPath($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->path = $arr;
+
+ return $this;
+ }
+
+ /**
+ * table name within the dataset
+ *
+ * Generated from protobuf field string tableName = 2;
+ * @return string
+ */
+ public function getTableName()
+ {
+ return $this->tableName;
+ }
+
+ /**
+ * table name within the dataset
+ *
+ * Generated from protobuf field string tableName = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setTableName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->tableName = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/packages/php-storage-driver-common/generated/Keboola/StorageDriver/Command/Workspace/DropWorkspaceCommand.php b/packages/php-storage-driver-common/generated/Keboola/StorageDriver/Command/Workspace/DropWorkspaceCommand.php
index 4a33b6afc..0c906fb61 100644
--- a/packages/php-storage-driver-common/generated/Keboola/StorageDriver/Command/Workspace/DropWorkspaceCommand.php
+++ b/packages/php-storage-driver-common/generated/Keboola/StorageDriver/Command/Workspace/DropWorkspaceCommand.php
@@ -40,6 +40,12 @@ class DropWorkspaceCommand extends \Google\Protobuf\Internal\Message
* Generated from protobuf field bool isCascade = 4;
*/
protected $isCascade = false;
+ /**
+ * tables with direct grant write access that need IAM cleanup before SA deletion
+ *
+ * Generated from protobuf field repeated .keboola.storageDriver.command.workspace.DirectGrantTable directGrantTables = 5;
+ */
+ private $directGrantTables;
/**
* Constructor.
@@ -55,6 +61,8 @@ class DropWorkspaceCommand extends \Google\Protobuf\Internal\Message
* object name in backend which will be removed
* @type bool $isCascade
* drop all object workspace contains
+ * @type array<\Keboola\StorageDriver\Command\Workspace\DirectGrantTable>|\Google\Protobuf\Internal\RepeatedField $directGrantTables
+ * tables with direct grant write access that need IAM cleanup before SA deletion
* }
*/
public function __construct($data = NULL) {
@@ -166,5 +174,31 @@ public function setIsCascade($var)
return $this;
}
+ /**
+ * tables with direct grant write access that need IAM cleanup before SA deletion
+ *
+ * Generated from protobuf field repeated .keboola.storageDriver.command.workspace.DirectGrantTable directGrantTables = 5;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDirectGrantTables()
+ {
+ return $this->directGrantTables;
+ }
+
+ /**
+ * tables with direct grant write access that need IAM cleanup before SA deletion
+ *
+ * Generated from protobuf field repeated .keboola.storageDriver.command.workspace.DirectGrantTable directGrantTables = 5;
+ * @param array<\Keboola\StorageDriver\Command\Workspace\DirectGrantTable>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDirectGrantTables($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Keboola\StorageDriver\Command\Workspace\DirectGrantTable::class);
+ $this->directGrantTables = $arr;
+
+ return $this;
+ }
+
}
diff --git a/packages/php-storage-driver-common/proto/workspace.proto b/packages/php-storage-driver-common/proto/workspace.proto
index f27d4f70a..fe5cd774e 100644
--- a/packages/php-storage-driver-common/proto/workspace.proto
+++ b/packages/php-storage-driver-common/proto/workspace.proto
@@ -5,6 +5,14 @@ import "proto/table.proto";
package keboola.storageDriver.command.workspace;
+/**
+ * Represents a table in a storage bucket for direct grant write access
+ */
+message DirectGrantTable {
+ repeated string path = 1; // path where table exists (e.g. dataset/schema)
+ string tableName = 2; // table name within the dataset
+}
+
/**
* Command is used when new workspace is created in Keboola connection
* Command will:
@@ -25,6 +33,8 @@ message CreateWorkspaceCommand {
string projectReadOnlyRoleName = 6; // backend read only role associated with project, role has read access for all buckets in project and containing tables
string devBranchReadOnlyRoleName = 10; // backend dev branch read only role associated with project, role has read access for all buckets in project and containing tables including bucket in dev branch
google.protobuf.Any meta = 7; // metadata specific for each backend
+ repeated DirectGrantTable directGrantTables = 11; // tables in storage buckets to which workspace should have write access (table-level IAM)
+
/**
* Teradata backend metadata
*/
@@ -54,6 +64,7 @@ message DropWorkspaceCommand {
string workspaceRoleName = 2; // backend role associated with workspace
string workspaceObjectName = 3; // object name in backend which will be removed
bool isCascade = 4; // drop all object workspace contains
+ repeated DirectGrantTable directGrantTables = 5; // tables with direct grant write access that need IAM cleanup before SA deletion
}
/**
* Command will remove workspace content