#### [Abblix\.SharedSignals](https://www.abblix.com/en/docs/api/abblix-sharedsignals 'index')
### [Abblix\.SharedSignals](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals 'Abblix\.SharedSignals')

## SsfScopes Class

The OAuth scopes governing the Stream Management API\.

```csharp
public static class SsfScopes
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → SsfScopes

### Remarks
The CAEP Interoperability Profile 1\.0 draft 01 Section 2\.7\.3 defines both and reserves the prefix:
"Scopes values beginning with 'ssf\.' are reserved and MUST only be defined by the SSF specifications\."
So this file is a transcription, not a design \- a deployment inventing a third `ssf.` scope is
outside the profile whatever it does with it\.

An authorization server issuing tokens to receivers has to be able to grant these two. This library's
own authorization server refuses a scope nobody registered, so a deployment running both declares them
alongside its other scopes; nothing here reaches into that side, and nothing there needs to know about
Shared Signals.
### Fields

## SsfScopes\.Manage Field {#Abblix.SharedSignals.SsfScopes.Manage}

Reading plus changing: "The ssf\.manage scope includes all ssf\.read permissions and additionally
allows Create Stream, Delete Stream, and Stream Verification operations\."

```csharp
public const string Manage = "ssf.manage";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

### Remarks
A caller holding this holds [Read](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.SsfScopes#Abblix.SharedSignals.SsfScopes.Read 'Abblix\.SharedSignals\.SsfScopes\.Read') as well, by that sentence, so a check for read
access is satisfied by either\.

## SsfScopes\.Read Field {#Abblix.SharedSignals.SsfScopes.Read}

Reading, and nothing else: "The ssf\.read scope allows Read Stream Configuration and Get Stream
Status operations\."

```csharp
public const string Read = "ssf.read";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
### Methods

## SsfScopes\.Satisfies\(IEnumerable\<string\>, string\) Method {#Abblix.SharedSignals.SsfScopes.Satisfies(System.Collections.Generic.IEnumerable_string_,string)}

Whether [granted](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.SsfScopes#Abblix.SharedSignals.SsfScopes.Satisfies(System.Collections.Generic.IEnumerable_string_,string).granted 'Abblix\.SharedSignals\.SsfScopes\.Satisfies\(System\.Collections\.Generic\.IEnumerable\<string\>, string\)\.granted') satisfies [required](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.SsfScopes#Abblix.SharedSignals.SsfScopes.Satisfies(System.Collections.Generic.IEnumerable_string_,string).required 'Abblix\.SharedSignals\.SsfScopes\.Satisfies\(System\.Collections\.Generic\.IEnumerable\<string\>, string\)\.required'), with the inclusion the
profile states: [Manage](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.SsfScopes#Abblix.SharedSignals.SsfScopes.Manage 'Abblix\.SharedSignals\.SsfScopes\.Manage') covers [Read](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.SsfScopes#Abblix.SharedSignals.SsfScopes.Read 'Abblix\.SharedSignals\.SsfScopes\.Read'), and not the other way round\.

```csharp
public static bool Satisfies(System.Collections.Generic.IEnumerable<string> granted, string required);
```
#### Parameters

###### `granted` [System\.Collections\.Generic\.IEnumerable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1') {#Abblix.SharedSignals.SsfScopes.Satisfies(System.Collections.Generic.IEnumerable_string_,string).granted}

###### `required` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.SharedSignals.SsfScopes.Satisfies(System.Collections.Generic.IEnumerable_string_,string).required}

#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
