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

## TransmitterConfiguration Class

The transmitter's configuration metadata \(SSF 1\.0 Section 7\.1\): what a receiver learns from
"/\.well\-known/ssf\-configuration" before creating a stream \- who the transmitter is, where its
keys and endpoints live, and which delivery methods it speaks\.

```csharp
public sealed record TransmitterConfiguration : System.IEquatable<Abblix.SharedSignals.Model.TransmitterConfiguration>
```

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

Implements [System\.IEquatable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')[TransmitterConfiguration](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Model.TransmitterConfiguration 'Abblix\.SharedSignals\.Model\.TransmitterConfiguration')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')
### Properties

## TransmitterConfiguration\.AddSubjectEndpoint Property {#Abblix.SharedSignals.Model.TransmitterConfiguration.AddSubjectEndpoint}

The URL of the add subject endpoint \(SSF 1\.0 Sections 7\.1, 8\.1\.3\)\.

```csharp
public System.Uri? AddSubjectEndpoint { get; init; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')

## TransmitterConfiguration\.AuthorizationSchemes Property {#Abblix.SharedSignals.Model.TransmitterConfiguration.AuthorizationSchemes}

The supported authorization scheme descriptions \(SSF 1\.0 Section 7\.1\.1\)\. Kept as raw JSON
objects: their shape is scheme\-specific, and this package stays agnostic of how a host
authorizes stream management\.

```csharp
public System.Collections.Generic.IReadOnlyList<System.Text.Json.Nodes.JsonObject>? AuthorizationSchemes { get; init; }
```

#### Property Value
[System\.Collections\.Generic\.IReadOnlyList&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlylist-1 'System\.Collections\.Generic\.IReadOnlyList\`1')[System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlylist-1 'System\.Collections\.Generic\.IReadOnlyList\`1')

## TransmitterConfiguration\.ConfigurationEndpoint Property {#Abblix.SharedSignals.Model.TransmitterConfiguration.ConfigurationEndpoint}

The URL of the stream configuration endpoint \(SSF 1\.0 Sections 7\.1, 8\.1\.1\)\.

```csharp
public System.Uri? ConfigurationEndpoint { get; init; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')

## TransmitterConfiguration\.CriticalSubjectMembers Property {#Abblix.SharedSignals.Model.TransmitterConfiguration.CriticalSubjectMembers}

Member names in a complex subject which, when present in an event's subject member, a
receiver must interpret \(SSF 1\.0 Section 7\.1\)\.

```csharp
public System.Collections.Generic.IReadOnlyList<string>? CriticalSubjectMembers { get; init; }
```

#### Property Value
[System\.Collections\.Generic\.IReadOnlyList&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlylist-1 'System\.Collections\.Generic\.IReadOnlyList\`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.ireadonlylist-1 'System\.Collections\.Generic\.IReadOnlyList\`1')

## TransmitterConfiguration\.DefaultSubjects Property {#Abblix.SharedSignals.Model.TransmitterConfiguration.DefaultSubjects}

The default behavior of newly created streams: one of
[DefaultSubjectBehaviors](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Model.TransmitterConfiguration.DefaultSubjectBehaviors 'Abblix\.SharedSignals\.Model\.TransmitterConfiguration\.DefaultSubjectBehaviors'), or null when the transmitter leaves the behavior
unspecified \(SSF 1\.0 Section 7\.1\)\.

```csharp
public string? DefaultSubjects { get; init; }
```

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

## TransmitterConfiguration\.DeliveryMethodsSupported Property {#Abblix.SharedSignals.Model.TransmitterConfiguration.DeliveryMethodsSupported}

The delivery method URIs the transmitter supports \(SSF 1\.0 Section 7\.1\); see
[MethodUri](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Model.Delivery.PushDeliveryMethod#Abblix.SharedSignals.Model.Delivery.PushDeliveryMethod.MethodUri 'Abblix\.SharedSignals\.Model\.Delivery\.PushDeliveryMethod\.MethodUri') and
[MethodUri](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Model.Delivery.PollDeliveryMethod#Abblix.SharedSignals.Model.Delivery.PollDeliveryMethod.MethodUri 'Abblix\.SharedSignals\.Model\.Delivery\.PollDeliveryMethod\.MethodUri')\.

```csharp
public System.Collections.Generic.IReadOnlyList<string>? DeliveryMethodsSupported { get; init; }
```

#### Property Value
[System\.Collections\.Generic\.IReadOnlyList&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlylist-1 'System\.Collections\.Generic\.IReadOnlyList\`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.ireadonlylist-1 'System\.Collections\.Generic\.IReadOnlyList\`1')

## TransmitterConfiguration\.Issuer Property {#Abblix.SharedSignals.Model.TransmitterConfiguration.Issuer}

REQUIRED\. The URL, https-schemed with no query or fragment, the transmitter asserts as its
issuer identifier; identical to the "iss" claim of every SET it issues
\(SSF 1\.0 Section 7\.1\)\.

```csharp
public string Issuer { get; init; }
```

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

## TransmitterConfiguration\.JwksUri Property {#Abblix.SharedSignals.Model.TransmitterConfiguration.JwksUri}

The transmitter's JSON Web Key Set document with the signing keys a receiver validates
signatures against\. SSF 1\.0 Section 7\.1 marks the member OPTIONAL and then requires it of any
transmitter that signs: "This value MUST be specified if the Transmitter intends to generate
signed JWTs\." When present the URL must use HTTP over TLS\.

```csharp
public System.Uri? JwksUri { get; init; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')

## TransmitterConfiguration\.RemoveSubjectEndpoint Property {#Abblix.SharedSignals.Model.TransmitterConfiguration.RemoveSubjectEndpoint}

The URL of the remove subject endpoint \(SSF 1\.0 Sections 7\.1, 8\.1\.3\)\.

```csharp
public System.Uri? RemoveSubjectEndpoint { get; init; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')

## TransmitterConfiguration\.SpecVersion Property {#Abblix.SharedSignals.Model.TransmitterConfiguration.SpecVersion}

The version of the specification the transmitter implements\. Absent means the transmitter
is assumed to conform to the "1\_0\-ID1" version \(SSF 1\.0 Section 7\.1\)\.

```csharp
public string? SpecVersion { get; init; }
```

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

## TransmitterConfiguration\.StatusEndpoint Property {#Abblix.SharedSignals.Model.TransmitterConfiguration.StatusEndpoint}

The URL of the stream status endpoint \(SSF 1\.0 Sections 7\.1, 8\.1\.2\)\.

```csharp
public System.Uri? StatusEndpoint { get; init; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')

## TransmitterConfiguration\.VerificationEndpoint Property {#Abblix.SharedSignals.Model.TransmitterConfiguration.VerificationEndpoint}

The URL of the verification endpoint \(SSF 1\.0 Sections 7\.1, 8\.1\.4\)\.

```csharp
public System.Uri? VerificationEndpoint { get; init; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')
### Methods

## TransmitterConfiguration\.WellKnownAddress\(Uri\) Method {#Abblix.SharedSignals.Model.TransmitterConfiguration.WellKnownAddress(System.Uri)}

The address the metadata for [issuer](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Model.TransmitterConfiguration#Abblix.SharedSignals.Model.TransmitterConfiguration.WellKnownAddress(System.Uri).issuer 'Abblix\.SharedSignals\.Model\.TransmitterConfiguration\.WellKnownAddress\(System\.Uri\)\.issuer') is published at: the well\-known
segment inserted "into the Issuer between the host component and the path component, if
any", with any terminating "/" of the issuer's path removed first \(SSF 1\.0 Sections 7\.2,
7\.2\.1\)\. The insertion \- not a suffix \- is what lets one host serve several issuers:
"https://tr.example.com/issuer1" resolves to
"https://tr.example.com/.well-known/ssf-configuration/issuer1"\.

```csharp
public static System.Uri WellKnownAddress(System.Uri issuer);
```
#### Parameters

###### `issuer` [System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri') {#Abblix.SharedSignals.Model.TransmitterConfiguration.WellKnownAddress(System.Uri).issuer}

The transmitter's issuer identifier, as documented by the
            transmitter\.

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

#### Exceptions

[System\.ArgumentException](https://learn.microsoft.com/en-us/dotnet/api/system.argumentexception 'System\.ArgumentException')  
The issuer is relative, carries a query or fragment \(SSF 1\.0 Section 7\.1 defines the
identifier without them\), or uses a scheme other than https on a non\-loopback host \- the
document behind this address names every endpoint and the signing keys, so its transport
is part of the trust, and Section 7\.2 expects the https scheme\. Loopback stays permitted
for local development\.
