package storage

// Code generated by cdproto-gen. DO NOT EDIT.

import (
	"github.com/chromedp/cdproto/cdp"
	"github.com/chromedp/cdproto/target"
)

// EventCacheStorageContentUpdated a cache's contents have been modified.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Storage#event-cacheStorageContentUpdated
type EventCacheStorageContentUpdated struct {
	Origin     string `json:"origin"`     // Origin to update.
	StorageKey string `json:"storageKey"` // Storage key to update.
	BucketID   string `json:"bucketId"`   // Storage bucket to update.
	CacheName  string `json:"cacheName"`  // Name of cache in origin.
}

// EventCacheStorageListUpdated a cache has been added/deleted.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Storage#event-cacheStorageListUpdated
type EventCacheStorageListUpdated struct {
	Origin     string `json:"origin"`     // Origin to update.
	StorageKey string `json:"storageKey"` // Storage key to update.
	BucketID   string `json:"bucketId"`   // Storage bucket to update.
}

// EventIndexedDBContentUpdated the origin's IndexedDB object store has been
// modified.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Storage#event-indexedDBContentUpdated
type EventIndexedDBContentUpdated struct {
	Origin          string `json:"origin"`          // Origin to update.
	StorageKey      string `json:"storageKey"`      // Storage key to update.
	BucketID        string `json:"bucketId"`        // Storage bucket to update.
	DatabaseName    string `json:"databaseName"`    // Database to update.
	ObjectStoreName string `json:"objectStoreName"` // ObjectStore to update.
}

// EventIndexedDBListUpdated the origin's IndexedDB database list has been
// modified.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Storage#event-indexedDBListUpdated
type EventIndexedDBListUpdated struct {
	Origin     string `json:"origin"`     // Origin to update.
	StorageKey string `json:"storageKey"` // Storage key to update.
	BucketID   string `json:"bucketId"`   // Storage bucket to update.
}

// EventSharedStorageAccessed shared storage was accessed by the associated
// page. The following parameters are included in all events.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Storage#event-sharedStorageAccessed
type EventSharedStorageAccessed struct {
	AccessTime  *cdp.TimeSinceEpoch        `json:"accessTime"`  // Time of the access.
	Scope       SharedStorageAccessScope   `json:"scope"`       // Enum value indicating the access scope.
	Method      SharedStorageAccessMethod  `json:"method"`      // Enum value indicating the Shared Storage API method invoked.
	MainFrameID cdp.FrameID                `json:"mainFrameId"` // DevTools Frame Token for the primary frame tree's root.
	OwnerOrigin string                     `json:"ownerOrigin"` // Serialization of the origin owning the Shared Storage data.
	OwnerSite   string                     `json:"ownerSite"`   // Serialization of the site owning the Shared Storage data.
	Params      *SharedStorageAccessParams `json:"params"`      // The sub-parameters wrapped by params are all optional and their presence/absence depends on type.
}

// EventSharedStorageWorkletOperationExecutionFinished a shared storage run
// or selectURL operation finished its execution. The following parameters are
// included in all events.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Storage#event-sharedStorageWorkletOperationExecutionFinished
type EventSharedStorageWorkletOperationExecutionFinished struct {
	FinishedTime    *cdp.TimeSinceEpoch       `json:"finishedTime"`    // Time that the operation finished.
	ExecutionTime   int64                     `json:"executionTime"`   // Time, in microseconds, from start of shared storage JS API call until end of operation execution in the worklet.
	Method          SharedStorageAccessMethod `json:"method"`          // Enum value indicating the Shared Storage API method invoked.
	OperationID     string                    `json:"operationId"`     // ID of the operation call.
	WorkletTargetID target.ID                 `json:"workletTargetId"` // Hex representation of the DevTools token used as the TargetID for the associated shared storage worklet.
	MainFrameID     cdp.FrameID               `json:"mainFrameId"`     // DevTools Frame Token for the primary frame tree's root.
	OwnerOrigin     string                    `json:"ownerOrigin"`     // Serialization of the origin owning the Shared Storage data.
}

// EventStorageBucketCreatedOrUpdated [no description].
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Storage#event-storageBucketCreatedOrUpdated
type EventStorageBucketCreatedOrUpdated struct {
	BucketInfo *BucketInfo `json:"bucketInfo"`
}

// EventStorageBucketDeleted [no description].
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Storage#event-storageBucketDeleted
type EventStorageBucketDeleted struct {
	BucketID string `json:"bucketId"`
}
